Java基础List,Set和Map的底层结构,特点和区别(菜鸟学习)

前言

总结曾经的知识
先百度一张图
Java基础List,Set和Map的底层结构,特点和区别(菜鸟学习)_第1张图片

1.Collection

List

(有序可重复)

ArrayList
底层:数组结构
特点:增删慢,改查快
线程不安全
LinkedList
底层:链表
特点:增删快,改查慢
线程不安全
Vector
底层:有同步锁,数组结构,
线程安全,效率低

Set

(无序不可重复)

HashSet
底层:HashMap,HashMap
特点:无序,不可重复
TreeSet
底层:TreeMap,自定义类实现Comparable
也是排序

遍历

最简单的方法,都可以使用foreach

LinkedList strings = new LinkedList<>();
        strings.add("aaa");
        strings.add("bbb");
        strings.add("ccc");
        for (String s:strings
             ) {
            System.out.println(s);
        }

2.Map

(键值对)

HashMap
底层:Hash表,一个叫哈希的人发明的(哈希表的底层是数组+链表)
特点:键值对
线程不安全,效率高,允许key或者value为null
TreeMap
底层:红黑二叉树
特点:排序用,自定义类实现Comparable
HashTable
线程安全,效率低,不允许key或者value为null

遍历

使用keySet获得Key的集合

TreeMap isTreeMap = new TreeMap<>();
        isTreeMap.put(1,"aa");
        isTreeMap.put(2,"bb");
        isTreeMap.put(3,"cc");
        for (Integer ss:isTreeMap.keySet()
             ) {
            System.out.println("key:"+ss+" value:"+isTreeMap.get(ss));
        }

完成

其实很简单,但不经常使用的,容易忽视
如有偏颇敬请斧正,本厮邮箱:[email protected]

你可能感兴趣的:(Java基础)