• JAVA基础知识|集合


    一、集合框架


    Collection接口:没有提供直接的实现类,但是却被继承产生了三个重要的接口List、Set、Queue。

    Map接口:和Collection接口没有直接的关系,但都属于集合类中的一部分。

    Iterator接口:所有的集合类都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含三个方法:hasNext()、next()、remove()。

    二、几种常见的接口及类

    List及其实现类:存放的对象是有序的,可以重复,查询速度快,但是插入和删除速度较慢,因为要伴随着后面数据的移动。

    Set及其实现类:存放的对象是无序的(TreeSet除外),不可以重复。

    Map及其实现类:存放的对象是无序的(TreeMap除外),存放的内容为键值对,键不可以重复,值可以重复。根据键获取值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。

    三、Map集合的四种遍历方式

            Map<String, String> map = new HashMap<String, String>();
            map.put("1", "value1");
            map.put("2", "value2");
            map.put("3", "value3");
    
            //第一种:效率低,二次取值
            System.out.println("通过Map.keySet遍历key和value:");
            for (String key : map.keySet()) {
                System.out.println("key= "+ key + " and value= " + map.get(key));
            }
    
            //第二种
            System.out.println("通过Map.entrySet使用iterator遍历key和value:");
            Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry<String, String> entry = it.next();
                System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
            }
    
            //第三种:推荐,尤其是容量大时
            System.out.println("通过Map.entrySet遍历key和value");
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
            }
    
            //第四种
            System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
            for (String v : map.values()) {
                System.out.println("value= " + v);
            }

    四、常见集合之间的区别

    HashTable与HashMap
    1、同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的。
    2、HashMap允许存在一个为null的key,多个为null的value 。
    3、hashtable的key和value都不允许为null。

  • 相关阅读:
    flyway
    xxl-job
    响应式布局
    position: fixed
    position: absolute
    position: relative
    GDB高级一点的命令
    坑爹的大页内存
    input8按键对照
    discuz插件应用原理分析
  • 原文地址:https://www.cnblogs.com/maikucha/p/8882237.html
Copyright © 2020-2023  润新知