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

前言

总结曾经的知识
先百度一张图
在这里插入图片描述

1.Collection

List

(有序可重复)

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

Set

(无序不可重复)

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

遍历

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

LinkedList<String> 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<Integer, String> 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));
        }

完成

其实很简单,但不经常使用的,容易忽视
如有偏颇敬请斧正,本厮邮箱:suncch@163.com

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值