前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java知识点梳理——集合

Java知识点梳理——集合

作者头像
Java编程指南
发布2019-08-02 15:33:05
3770
发布2019-08-02 15:33:05
举报
文章被收录于专栏:Java编程指南Java编程指南

1、定义:Java集合类存放于java.util包,是存放对象的容器,长度可变,只能存放对象,可以存放不同的数据类型;

2、常用集合接口:

 a、Collection接口:最基本的集合接口,存储不唯一,无序的对象,List接口和Set接口的父接口;

  b、List接口:一个有序、可以重复的集合,常用实现类ArrayList和LinkedList;

代码语言:javascript
复制
1 // 底层数据结构是数组,查询快,增删慢,线程不安全,效率高
2 List arrayList = new ArrayList(); 
3 // 底层数据结构是数组,查询快,增删慢,线程安全,效率低,耗性能
4 List vector = new Vector();
5 // 底层数据结构是链表,查询慢,增删快,线程不安全,效率高
6 List linkedList = new LinkedList();

c、Set接口:一个无序、不可重复的集合,常用实现类HashSet、LinkedHashSet、TreeSet;

代码语言:javascript
复制
代码语言:javascript
复制
1 // 元素无序,不可重复,
线程不安全,集合元素可以为 NULL
2 Set hashSet = new HashSet();
3 // 底层采用链表和哈希表的算法,保证元素有序,唯一性(即不可以重复,有序),线程不安全
4 Set linkedHashSet = new LinkedHashSet();
5 // 底层使用红黑树算法,擅长于范围查询,元素有序,不可重复,线程不安全
6 Set treeSet = new TreeSet();

d、Map接口:key-value的键值对,key不允许重复,value可以,key-value通过映射关系关联,常用实现类HashMap和TreeMap;

代码语言:javascript
复制
代码语言:javascript
复制
1 // 采用哈希表算法,key无序且不允许重复,key判断重复的标准是:key1和key2是否equals为true,并且hashCode相等
 2 Map<String, String> hashMap = new HashMap<String, String>();
3 // 采用红黑树算法,key有序且不允许重复,key判断重复的标准是:compareTo或compare返回值是否为0
4 Map<String, String> treeMap = new TreeMap<String, String>();

3、Set和List的区别:

  a、Set实例存储是无序的,不重复的数据;List实例存储的是有序的,可以重复的元素

 b、Set检索效率低下,删除和插入效率高,删除和插入不会引起元素位置改变;

c、List可以根据存储的数据长度自动增长List长度,查找元素效率高,插入删除效率低,插入和删除时会引起其他元素位置改变;

4、Map和Set的关系:

 a、HashMap、HashSet 都采哈希表算法,TreeMap、TreeSet 都采用红黑树算法、LinkedHashMap、LinkedHashSet 都采用哈希表算法和红黑树算法;

  b、分析Set的底层源码,Set 集合就是由Map集合的Key组成;

5、集合遍历:

代码语言:javascript
复制
代码语言:javascript
复制
1 // 采用哈希表算法,key无序且不允许重复,key判断重复的标准是:key1和key2是否equals为true,并且hashCode相等 
2 Map<String, String> hashMap = new HashMap<String, String>();
3 // 采用红黑树算法,key有序且不允许重复,key判断重复的标准是:compareTo或compare返回值是否为0
4 Map<String, String> treeMap = new TreeMap<String, String>();
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java编程指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档