您的位置:首页 > 其它

关于集合子类父类关系的全面总结 ,以及遍历方法的总结 全

2016-11-05 20:37 120 查看
   集合

       集合是个非常好的存储结构,你补了数组不能改变长度的不足。可以存储在临时内存的数据的载体。

       

      集合有两大父类,分别是Collection  和  Map

   1.Collection   ——Set——HashSet   (不是键值对,不安全,不能有重复数据,没有顺序)

                            ——Queue——LinkedList  (适合进行插入删除 ,因为内部是以链表实现的)

                            ——List——ArrayList(线程不安全 )    \   __   适合进行随机遍历,因为是数组形式实现的。

                                           ——Vector(线程安全)             /

   2.Map  ———HashMap——LinkHashMap                                                                                               区别于hashtable:线程安全的        没有null键和值   父类是dictionary 

               ———HashTable——Properties   (通常与对排序进行合作,进行海量数据的块数查询) 区别于hashMap  :线程不安全的    有null键和值      父类是abstractmap

               ———SortedMap——TreeMap

   注:hashmap和hashtable  在定位存储完成后也可以进行排序(主要是通过封装到list集合中进行自定义排序):List<> list=new ArrayList<>(t.entrySet();)                                                                                                                                                  Collections.sort(list,new
COnparator(){  重写 compare方法}),排序完list之后遍历list集合就行了。

   注:hash和list的区别:hash是无序的,并且不能重复的。而list是有序的,可以重复的。

   注:hash  算法实质。(就是在要求对象不相同的情况下,hash算法可以大大降低调用equals方法的次数。)直接定位,如果定位上有元素才调用equals方法进行比较,存                                                  储或覆盖。

      

list集合的5种遍历方法

     1.iterator遍历   Iterator<String>  it=list.iterator();   while(it.hasNext){String e=it.next();}

     2.foreach遍历   for(String s:list){System.out.println(s);}

     3.ListIterator遍历  ListIterator<String> ls=list.listIterator();    while(ls.hasNext){String e=ls.next();}   注:LIstIterator  遍历是可以双向的previous()和hasPrevious()方法                                                                                            
                                                                                                就可以实现。

    4.正常for循环遍历   for(int i=0;i<list.size();i++){System.out.println(list.get(i));}   注:同样的for循环也可以实现对list的双向遍历。

    5.toArray() 方法遍历   Object  []obj=list.toArray();  for(int i=0;i<os.length;i++){System.out.println(os[i]);}    注:同样的道理 ,toArray方法也可以实现双向遍历。

Hashtable集合的5种遍历方法

    1 根据值来遍历 :.Enumeration es=t.elements();  while(es.hasMoreElements()){System.out.println(es.nextElement();)}

    2.根据键来遍历: Enumeration es=t.keys(); while(es.hasMoreElements()){System.out.println(t.get(es.nextElement()));}

    3.根据返回值是collection来进行遍历: Collection cs=t.values();for(Interger i:cs){System.out.println(i)};

    4.根据返回值是Set集合来进行遍历:Set ss=t.keySet(); Iterator ot=ss.iterator(); while(it.hasnext()){System.out.println(t.get(it.next))};

    5.根据返回值是Entry集合进行遍历: Set<Map.Entry<Sring,Integer>> ts.entrySet();Iterator<Map.Entry<String,Integer>> it2=ts.iteraator();while(it2.hasNext())                                                                                                              
                                                                 
926e
         {Entry<String,Integer> e=it2.next();  System.out.println(e.getValue());};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐