数据多了存在对象里面,对象多了存在集合里面。
已经有数组了为什么要集合呢?
数组特点:大小固定,只能存储相同数据类型的数据。 数组只能存同一类型的对象。
集合特点:大小可动态扩展,可以存储各种类型的数据。
什么是集合框架
集合是Java中的容器。这种容器有共同的特性,就形成了体系,就是集合框架。
为什么会有这么多的集合框架?
因为每一种的集合框架对数据的存储方式都有所不同。
这个存储方式被称之为 数据结构
迭代器
通俗点说 叫 一个个数过去,取出来。实现这样一个个数过去功能的东西,叫迭代器。
Iterator ite=list.iterator(); while(ite.hasNext()){ System.out.println(ite.next()); }
具体使用最好参考手册,里面有最全的操作
Arraylist http://www.cnblogs.com/skywang12345/p/3308556.html 具体使用在第6节
java 中几种常用数据结构 http://blog.csdn.net/u010947402/article/details/51878166
将数组转换成List , 使用了Java.util.Arrays类中的静态方法asList
String[] str=new String[]{"1","2","3"}; List list=Arrays.asList(str);
将List转换成数组
List list=new ArrayList(); list.add(1); list.add(2); list.add(3); Integer[] in=new Integer[list.size()]; in=(Integer[])list.toArray(in); for(int k=0;k<in.length;k++){ System.out.println(in[k]); }
数组是固定长度的。ArrayList是数组结构,属于可变长度数组。初始10的长度。当长度用完了,每次增加原长度的50%。
http://www.cnblogs.com/sierrajuan/p/3639353.html ArrayList和LinkedList的区别
这里面讲了,linkedList 链表的数据存储结构 和 ArrayList 数组结构的概念和原理
相同:因为他俩都是继承自list 所以很多方法都是通用的
不同:
ArrayList 因为有数组的下标所以在查询和修改的时候能跟据下标(key)快速定位,所以速度会很快,但是插入和删除的话,会将整个数组的下标全都从新计算修改。所以会很慢。
linkedList 由于是链表的结构。在修改和删除的话只在当前的结构中修改 操作的对象 的前一个 和它后一个之间的关系。不需要重新生成下标。所以修改和删除linkedList更快些。
linkedList 因为链表的结构能快速定位到当前的第一个数据 和 最后一个一个数据。所以它有几个特有的方法 *Last,*.Farst相关的方法。
查询和修改多的时候用ArrayList
修改和删除多的时候用linkedList
如果增删改查都多的时候?
优先选用ArrayList 。因为查询的频率更高一些
堆栈 先进后出
队列 先进先出
hashSet 操作基本上是一样的,无许,不可重复。
如果元素本身没有比较性,或者它的比较方式不是我们所需要的。需要构建比较器的。具体方法看手册去