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) 编辑 收藏 举报