JAVA集合框架中的常用集合及其特点和实现原理简介
1. List
List 是一种有序的集合,可以存放重复的元素,它可以通过索引访问集合中的元素。List 接口有 Vector、ArrayList、LinkedList 等实现类,它们都继承了AbstractList,实现了List 接口。
Vector 是线程安全的,底层是数组实现,查询快,增删慢;ArrayList 是线程不安全的,底层是数组实现,查询快,增删快;LinkedList 是线程不安全的,底层是链表实现,查询慢,增删快。
2. Set
Set 是一种不允许重复元素的集合,可以添加不同类型的元素。Set 接口有 HashSet、TreeSet、LinkedHashSet 等实现类,它们都继承了AbstractSet,实现了Set 接口。
HashSet 是线程不安全的,底层是哈希表实现,查询快,增删快;TreeSet 是线程不安全的,底层是红黑树实现,查询快,增删慢;LinkedHashSet 是线程不安全的,底层是链表实现,查询快,增删快。
3. Map
Map 是一种键值对的集合,允许重复的键,但不允许重复的值。Map 接口有 HashMap、TreeMap、LinkedHashMap 等实现类,它们都继承了AbstractMap,实现了Map 接口。
HashMap 是线程不安全的,底层是哈希表实现,查询快,增删快;TreeMap 是线程不安全的,底层是红黑树实现,查询快,增删慢;LinkedHashMap 是线程不安全的,底层是链表实现,查询快,增删快。
上一篇
C++类的继承关系举例分析 猜您想看
-
Keil报错cannot open source input file "core_cmInstr.h" 怎么解决
1. 什么是K...
2023年05月25日 -
怎么把shiny网页工具部署在云服务器
如何将Shin...
2023年07月21日 -
电脑上的网络连接无法使用怎么办?
如何解决电脑上...
2023年04月24日 -
如何在宝塔面板中安装Typecho博客?
如何在宝塔面板...
2023年04月16日 -
如何使用Eclipse进行PHP的服务器端调试
如何使用Ecl...
2023年07月22日 -
如何用cutecharts库绘制手绘风格的可视化图形
一、Cutec...
2023年05月26日