Java 开发中之二:对象与集合的理解

 

对象与集合

   比较对象==(地址)   

            equals(地址中的值)

集合的分类:

       1、链式

             数组:长度是定值,存放的数据类型要与数组定义的一样,开发中不建议使用,但在文件读取中会用到,如:String strings ="中国";  byte [] buf=strings.getBytes();

                     String st=new String(buf);  又把它写回去!

             链表:长度不有限制,数据类型也没有限制如:list 两个之类 ArrayList  Vector  (jdk1.5出来的泛型):前者是非线程安全,后者是线程安全,非线程安全的运行速度经线程安全要快,所在一般在线统计人数时如果用到集合都是用Vector,因为它是线程安全的。

                      如果要取出泛型中的数据,可以构一个迭代器,如:

List<Integer> list=new ArrayList<Integer>();
list.add(3);//装箱
list.add(new Integer(5));//如果取出来则要拆箱
list.add(6);

Iterator<Integer> itrator=list.iterator();
while (itrator.hasNext())
{
    Integer integer = (Integer) itrator.next();
    System.out.println(integer);
}

       2、堆

            Set

             HashSet 存放的数据是无序的,但是里面的值不能重复,而List则相反(因为它有下下标,可以通过下标来取值)

Set<Integer> set=new HashSet<Integer>();
set.add(55);
set.add(8);
set.add(1);
set.add(83);
Iterator<Integer> iterator=set.iterator();
while (iterator.hasNext())
{
Integer integer = (Integer) iterator.next();
System.out.println(integer);
}

       3、映射方式(有连表的共性也有堆的共性)

       HashTable(线程不安全),中不可以空

       HaspMap(线程安全)中可以为空  这个是典型的购物车模型:Map<id,name>

 

 

posted on 2012-12-07 11:06  peter.peng  阅读(240)  评论(0编辑  收藏  举报