Java - Collection

本文详细介绍了Java集合框架的主要组成部分,包括List、Set、Map等核心接口及其具体实现类。对比了Vector与ArrayList、HashTable与HashMap的区别,并解释了Comparable与Comparator接口的使用场景。

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

Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?
A:Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。

 

Q:大致讲解java集合的体系结构
A:List、Set、Map是这个集合体系中最主要的三个接口。
其中List和Set继承自Collection接口。
Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。
List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。
Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。
SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。

 

Comparable和Comparator区别
A:调用java.util.Collections.sort(List list)方法来进行排序的时候,List内的Object都必须实现了Comparable接口。
java.util.Collections.sort(List list,Comparator c),可以临时声明一个Comparator 来实现排序。

Collections.sort(imageList, new Comparator() {
            public int compare(Object a, Object b) {
                int orderA = Integer.parseInt( ( (Image) a).getSequence());
                int orderB = Integer.parseInt( ( (Image) b).getSequence());
                return orderA - orderB;
           }
        });

如果需要改变排列顺序,改成return orderb - orderA 即可。

 

集合接口: 6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。
抽象类: 5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。
实现类: 8个实现类(实线表示),对接口的具体实现。

 

· Collection 接口是一组允许重复的对象。
· Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。
· List 接口继承 Collection,允许重复,
以元素安插的次序来放置元素 ,不会重新排列。
· Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。
· 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。

 

 

(1) 单元素添加、删除操作:

//将对象添加给集合
boolean add(Object o)
//如果集合中有与o相匹配的对象,则删除对象o
boolean remove(Object o): 

(2) 查询操作:

//返回当前集合中元素的数量
int size()
//判断集合中是否有任何元素
boolean isEmpty()
//查找集合中是否含有对象o
boolean contains(Object o)
//返回一个迭代器,用来访问集合中的各个元素
Iterator iterator()

(3) 组操作 :作用于元素组或整个集合

//查找集合中是否含有集合c 中所有元素
boolean containsAll(Collection c)
//将集合c 中所有元素添加给该集合
boolean addAll(Collection c) 
//删除集合中所有元素
void clear()
//从集合中删除集合c 中的所有元素
void removeAll(Collection c)
//从集合中删除集合c 中不包含的元素
void retainAll(Collection c) 

(4) Collection转换为Object数组 :

//返回一个内含集合所有元素的array
Object[] toArray()
//返回一个内含集合所有元素的array。
//运行期返回的array和参数a的型别相同,需要转换为正确型别。
Object[] toArray(Object[] a) 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值