• List、Set、Map常见集合遍历总结


    Java中的集合有三大类,List、Set、Map,都处于java.util包中,List、Set和Map都是接口,不能被实例化,它们的各自的实现类可以被实例化。List的实现类主要有ArrayList,Set的实现类主要有HashSet和TreeSet,Map的实现类主要有HashMap和TreeMap。
      List中的对象有序,可以重复,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素。
      Set中的对象无序,不可以重复。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现java.util.Comparator接口来自定义排序方式。
      Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。
      根据如上综述,现将这三种集合的遍历方式总结如下 
      

    一、List集合

    List集合有序,可重复,以最常见的ArrayList集合为例,List集合添加元素使用add()方法

    List<String> list = new ArrayList<String>();
    list.add(“张三”);
    list.add(“李四”);
    list.add(“王五”);

    List集合遍历方式有三种:普通for循环、增强for循环、迭代器(iterator)

    • 普通for循环
    for(int i=0; i<list.size(); i++) {
        String str = list.get(i);
        System.out.println(str);
    }
    • 增强for循环
    for(String str : list) {
        System.out.println(str);
    }
    • 迭代器(iterator)
    Iterator<String> it = list.iterator();
    while(it.hasnext) {
        System.out.println(it.next);
    }

    二、Set集合

    Set集合无序,不可重复,以最常见的HashSet为例,Set集合添加元素也使用add()方法

    Set<String> set = new HashSet<String>();
    set.add(“张三”);
    set.add(“李四”);
    set.add(“王五”);

    Set集合遍历方式有两种:增强for循环、迭代器(Iterator)

    • 增强for循环
    for(String str : set) {
        System.out.println(str);
    }
    • 迭代器(Iterator)
    Iterator<String> it = set.iterator();
    while(it.hasnext) {
        System.out.println(it.next);
    }

    三、Map集合

    Map集合以键值对的形式成对出现,无序,键对象不可重复,值对象可重复。以最常见的HashMap为例,Map集合添加元素采用put()方法

    Map<Integer, String> map = new HashMap<Integer, String>();
    map.put(1, “小希”);
    map.put(2, “美美”);
    map.put(3, “空城”);

    Map集合遍历方式有两种,一种是将所有的Key拿出来组成集合KeySet,即纵向遍历,另一种是使用EntrySet获得所有的key-value的之间的关系集合,然后再遍历的横向方式

    • 获取所有的key的集合
    Set<Integer> keys = map.keySet();
    for(Integer key : keys) {
        String value = map.get(key);
        System.out.println(key+” ”+value);
    }
    • 获取key-value的对应关系
    Set<Entry<Integer, String>> entrys = map.entrySet();
    for(Entry<Integer, String> entry : entrys) {
        System.out.println(entry.getKey()+” ”+entry.getValue());
    }
  • 相关阅读:
    javascript:history.go()和history.back()的区别
    ASP.NET26个性能优化方法
    20 个 jQuery 分页插件和教程,附带实例
    JQuery中$.ajax()方法参数详解
    记住键盘快捷键大全 提高电脑操作速度
    URL重写案例
    url重写(伪静态)IIS配置图解
    URL重写的优缺点分析
    C# GUID的使用
    js中的编码与解码
  • 原文地址:https://www.cnblogs.com/qq3111901846/p/8034171.html
Copyright © 2020-2023  润新知