zoukankan      html  css  js  c++  java
  • JAVA集合迭代遍历和特性介绍

    数组、集合:都是一种容器,用一个对象管理多个对象;数组不能自动增长;只能存放同类型的元素

     集合能自动扩容;部分集合允许存放不同类型的元素;

     

    1、List: 有顺序的,允许存放重复的元素;

      遍历:for  迭代

      排序:Comparable Comparator   Collections.sort()

    ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;

    LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高

    Vector: 底层用数组实现List接口的另一个类 特点:重量级,占据更多的系统开销 线程安全

    2、Set:无顺序的,元素不可重复(值不相同)

      遍历:迭代

      排序:SortedSet

    HashSet:采用哈希算法来实现Set接口 ,唯一性保证:重复对象equals方法返回为true

     重复对象hashCode方法返回相同的整数,不同对象 哈希码 尽量保证不同(提高效率)

    SortedSet:对一个Set排序

    TreeSet:在元素添加的同时,进行排序。也要给出排序规则

      唯一性保证:根据排序规则,compareTo方法返回为0,就可以认定两个对象中有一个是重复对象。

    LinkedHashSet:当遍历该集合时候,使用链表维护元素的次序LinkedHashSet将会以元素的添加顺序访问集合的元素。

    3、Map:元素是键值对 key:唯一,不可重复 value:可重复

      遍历:先迭代遍历key的集合,再根据key得到value

    HashMap:轻量级  线程不安全  允许key或者value是null

    Hashtable:重量级 线程安全 不允许key或者value是null

    Properties:Hashtable的子类,key和value都是String

    SorteMap:元素自动对key排序

    TreeMap:

    4、 java集合关系的图

     

    集合遍历迭代方式

    第一种方式:for循环 
      for(int i = 0;i<list.size();i++){
       System.out.println(list.get(i).id+"  "+list.get(i).name);
      }
      

    第二种方式:iterator迭代器 弱点是只能从头到尾 兼容性最好
      Iterator<Student> it = list.iterator();
      while(it.hasNext()){//hasNext()
       Student st = it.next();
       System.out.println(st.id+"  "+st.name);
      }
      

    第三种方式:for each JK1.5以上使用  适用List Set Map
      for(Student t:list){
       System.out.println(t.id+"  "+t.name);
      }

    Map集合遍历迭代

    //第一种遍历MAP方法,效率相对较低
    Iterator it = map.keySet().iterator();
    while(it.hasNext()){
    String key = (String) it.next();
    int value = map.get(key);
    System.out.println(key + "→" + value);
    }
     
    //第二种遍历MAP方法,效率相对较高
    Iterator iter = map.entrySet().iterator();
    while (iter.hasNext()){
    Entry e = iter.next();
    String key = e.getKey();
    int value = e.getValue();
    System.out.println(key + "→" + value);
    }

     

     

  • 相关阅读:
    Asynchttpclient开源框架下载图片和文本,于Volley和Glide开源框架的区别。
    探究Python迭代器与生成器
    Python核心编程第二版 第十一章课后答案
    Python核心编程第二版 第十章课后答案
    Python核心编程第二版 第九章课后答案
    Python核心编程第二版 第八章课后答案
    Python核心编程第二版 第七章课后答案
    Python strip()方法介绍
    Python核心编程第二版 第六章课后练习
    Python中列表元素转为数字的方法
  • 原文地址:https://www.cnblogs.com/laotan/p/3644238.html
Copyright © 2011-2022 走看看