学习Java集合

一、列表  List接口(继承于Collection接口)及其实现类 java

   List接口及其实现类是容量可变的列表,可按索引访问集合中的元素。 数组

   特色:集合中的元素有序、可重复 数据结构

  列表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。多线程

   实现类: 
   ArrayList  实现一个数组,它的规模可变而且能像链表同样被访问。它提供的功能相似Vector类但不一样步,它是以Array方式实现的List,容许快速随机存取 spa

   LinkedList实现一个链表,提供最佳顺序存取,适合插入和移除元素。由这个类定义的链表也能够像栈或队列同样被使用。提供最佳顺序存取适合插入和移除元素 线程

 二、集 Set接口(继承于Collection接口)及其实现类 code

    特色:集合中的元素不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对象

              对Set中成员的访问和操做是经过Set中对象的引用进行的,因此集中不能有重复对象排序

    Set也有多种变体,能够实现排序等功能,如TreeSet,它把对象添加到集中的操做将变为按照某种比较规则将其插入到有序的对象序列中。            它实现的是SortedSet接口,也就是加入了对象比较的方法。经过对集中的对象迭代,咱们能够获得一个升序的对象集合。继承

    实现类: 

    HashSet 可以快速定位一个元素,要注意的是:存入HashSet中的对象必须实现HashCode()方法 

    TreeSet 将放入其中的元素按序存放 

 三、映射 Map接口及其实现类 

    Map是一个单独的接口,不继承于Collection。Map是一种把键对象和值对象进行关联的容器。 

    特色:key不容许重复 

        映射与集或列表有明显区别,映射中每一个项都是成对的,Map是把键对象和值对象进行关联的容器。映射中存储的每一个对象都有一个相关的关键字(Key)对象,关键字决定了对象在映射中的存储位置,检索对象时必须提供相应的关键字,就像在字典中查单词同样。关键字应该是惟一的,也就是说Map中的键对象不容许重复,这是为了保证查询结果的一致性。

关键字自己并不能决定对象的存储位置,它须要对过一种散列(hashing)技术来处理,产生一个被称做散列码(hash code)的整数值,散列码一般用做一个偏置量,该偏置量是相对于分配给映射的内存区域起始位置的,由此肯定关键字/对象对的存储位置。理想状况下,散列处理应该产生给定范围内均匀分布的值,并且每一个关键字应获得不一样的散列码。

    实现类: 

    HashMap 实现一个键到值映射的哈希表,经过键取得值对象,没有顺序,经过get(key)来获取value,容许存储空对象,并且容许键是空(因为键必须是惟一的,固然只能有一个); 

    HashTable 实现一个映象,全部的键必须非空。为了能高效的工做,定义键的类必须实现hashcode()方法和equal()方法。这个类是前面java实现的一个继承,而且一般能在实现映象的其余类中更好的使用。

      当元素的顺序很重要时选用TreeMap,当元素没必要以特定的顺序进行存储时,使用HashMap。Hashtable的使用不被推荐,由于HashMap提供了全部相似的功能,而且速度更快。当你须要在多线程环境下使用时,HashMap也能够转换为同步的。

    Properties 通常是把属性文件读入流中后,以键-值对的形式进行保存,以方便读取其中的数据。 

 四、Iterator接口 

    Iterator接口位于java.util包中,它是一个对集合进行迭代的迭代器。 

    集合容器(如:List、Set、Map等)自己提供了处理元素置入和取出的方式,可是单一选取元素的方法很受限制。因此咱们要用Iterator去选取容器中的元素,它将容器转换成一个序列。 

Iterator iter=Object.iterator();        

while(iter.hasNext()){   } 

相关文章
相关标签/搜索