java 集合

数据多了存在对象里面,对象多了存在集合里面。

已经有数组了为什么要集合呢?

  数组特点:大小固定,只能存储相同数据类型的数据。 数组只能存同一类型的对象。

  集合特点:大小可动态扩展,可以存储各种类型的数据。

什么是集合框架

  集合是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  操作基本上是一样的,无许,不可重复。

   

如果元素本身没有比较性,或者它的比较方式不是我们所需要的。需要构建比较器的。具体方法看手册去

原文地址:https://www.cnblogs.com/zhaoyang-1989/p/6636417.html