java集合框架使用总结

Java集合框架的基本接口/类层次结构:java.util.Collection [I]
+--java.util.List [I]
   +--java.util.ArrayList [C]
   +--java.util.LinkedList [C]
   +--java.util.Vector [C]
      +--java.util.Stack
+--java.util.Set [I]
   +--java.util.HashSet [C]

   +--java.util.LinkedHashSet[C]
   +--java.util.SortedSet [I]
      +--java.util.TreeSet [C]
java.util.Map
+--java.util.SortedMap [I]
   +--java.util.TreeMap [C]
+--java.util.Hashtable [C]
+--java.util.HashMap [C]
+--java.util.LinkedHashMap [C]
+--java.util.WeakHashMap [C]

[I]:接口
[C]:类

注意点:

1. Vector与ArrayList基本上是相同的,不同之处是该类的功能方法是同步的,同一时刻只能有一个线程访问,没有特殊需要,现在一般都使用ArrayList

2.ArrayList内部实际上时依赖数组实现的,因此对元素进行随机访问的性能很好。但是如果进行大量的插入,删除操作,此类的性能很差,并不适合。

3.LinkedList的内部是依赖双链表来实现的,因此具有很好的插入删除性能,但随机访问元素的性能相对较差,适合用在插入,删除多,元素随即访问少的场合。

4.set和map都不能直接都不能使用索引来进行元素的遍历,而是必须使用迭代器来完成遍历。

对集合操作的工具类:

Java提供了java.util.Collections,以及java.util.Arrays类简化对集合的操作
java.util.Collections主要提供一些static方法用来操作或创建Collection,Map等集合。
java.util.Arrays主要提供static方法对数组进行操作。

附:对map的遍历方法

[//创建HashMap对象
       Map<Integer, String> hm=new HashMap<Integer, String>();
       //向Map中插入键/值对
       hm.put(10001,"Tom");
       hm.put(10003,"Jerry");
       hm.put(10002,"John");
       hm.put(10004,"Lili");
      
       Set entrySet=hm.entrySet();
       Iterator itr=entrySet.iterator();
       while(itr.hasNext())
       {
       Map.Entry map=(Map.Entry)itr.next();
       System.out.println("键:"+map.getKey()+" 值:"+map.getValue());
       }
      
       //获取Map的键集合
       Set keySet=hm.keySet();
       //获取键集合的迭代器
       Iterator ii=keySet.iterator();
       //通过迭代器遍历假扮集合来遍历HashMap
       System.out.println("==========通过键集合对Map进行遍历==========");
       while(ii.hasNext())
       {
       Object okey=ii.next();
       //将获取的键引用进行强制类型转换
       Integer i=(Integer)okey;
       //通过键获取相应的值
       Object ovalue=hm.get(okey);
       //将获取的值引用进行强制类型转换
       String s=(String)ovalue;
       //打印键、值的情况
       System.out.println("键:"+i.intValue()+",值:"+s);
       }
       //获取Map中所有值的Collection
       Collection cvalue=hm.values();
       //用for-each循环对所有值进行遍历
       System.out.println("=======用for-each循环对所有值进行遍历=======");
       for(Object otemp:cvalue)
       {
       //对引用进行强制类型转换
       String s=(String)otemp;
       System.out.println("值:"+s);
       }/code]

你可能感兴趣的:(java,C++,c,框架,C#)