接口

本文深入探讨了Java集合框架的核心概念,包括List、Set、Map等主要接口及其具体实现类的特点与应用场景。详细对比了ArrayList与LinkedList在不同操作下的性能表现,并介绍了HashSet、LinkedHashSet和TreeSet如何处理元素唯一性及排序需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Collection: List; set; map;
List: ArrayList数组; LinkedList;链表
Set: HashSet(LinkedHashSet); TreeSet二叉树;
Map: HashMap(无序唯一); TreeMap(有序唯一);

Collection接口:存储一组不唯一,无序的对象;
List接口:存储一组不唯一,有序(插入顺序)的对象;
Set接口:存储一组唯一,无序的对象;
Map接口:存储一组键值对象,提供key-value的映射;
List特有的方法:
增add()
删 remave()
查:getfirst()//获取头
Getlast()//获取尾

ArrayList:有序不唯一
实现了长度可变的数组,在内存中分配连续的空间。
优点:遍历和查找元素效率比较高
缺点:添加和删除元素效率比较低
LinkedList::有序不唯一

采用链表存储方式。
优点:插入和删除元素效率比较高
缺点:遍历和查找元素效率比较低
LinkedList特有的方法:
HashSet:无序 唯一
采用Hashtable哈希表存储结构。
优点:添加,查询,删除速度快
缺点:无序
LinkedHashSet:采用哈希表存储结构,同时使用链表维护次序
优点:有序(添加顺序)
TreeSet:有序唯一
采用二叉树(红黑树)存储结构。
优点:有序,比List速度快
缺点:没有HashSet快
TreeSet要求你提供排序规则,TreeSet中的元素需要实现比较接口(conparable)。
注意:
1,Set集合踢出重复元素,如果是引用类型需要重写HashCode和equals方法。
2,Set相对于List而言没有下标,没有get()方法。
Map:
Key-value键值对方式存储数据。
Key:唯一,无序
Value:不唯一,无序
子类:HashMap,TreeMap,LinkedHashMap,HashTable
Map方法:
增 put(k,v)
删 remove
Contains//查找
三种循环
//获取key
//获取value
//获取keyvalue
// 获取key;
Set d = c.keySet();
// 获取value
Collection v = c.values();
// 循环key
for (Integer f : d) {
Student a = c.get(f);
System.out.println(a);
}
//循环value
for(Student g:v){
System.out.println(g);
}
//返回对象的集合
Set

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值