Java集合排序及java集合类详解
java中集合的概念

java中集合的概念Java中的集合是一种非常重要的数据结构,用于存储和操作一组对象。
集合框架包含了许多类和接口,可以方便地进行数据的存储、查询、排序等操作,使得Java程序开发变得更加高效和便捷。
在本文中,我们将逐步介绍Java中集合的概念和用法。
一、集合框架概述Java中的集合框架是一个包含了多个接口和类的层次结构,用于表示和操作一组对象。
集合框架包含了通用的集合接口和实现,以及特定的集合类和接口,如List、Set、Map等。
集合框架的接口和类都是通过泛型实现的,可以存储任意类型的对象,比如基本类型和自定义类型的对象。
二、集合框架的接口Java中的集合框架包含了多个接口,其中包括:1. Collection:代表一组对象的集合,是其他集合接口的父接口。
它定义了一些通用的方法,如添加、删除、迭代等。
2. List:代表有序的集合,其中每个元素都有一个对应的索引。
List允许重复元素出现,并且可以通过索引访问、添加、删除元素。
3. Set:代表无序的集合,其中每个元素都是唯一的。
Set不允许重复的元素出现,可以用来去重。
4. Map:代表一组键值对的集合,其中每个键都是唯一的。
Map 允许多个值对应同一个键,可以用来快速查找和存储数据。
三、集合类的实现Java中的集合类可以通过实现集合接口来实现。
如ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等都是集合类的实现,我们可以通过这些集合类来方便地实现对一组对象的操作。
例如:1. 使用ArrayList来实现List接口,可以进行元素的添加、删除、查询等操作:List<String> list = new ArrayList<>();list.add("Alice");list.add("Bob");System.out.println(list.get(1));2. 使用HashSet来实现Set接口,可以去重并存储元素:Set<Integer> set = new HashSet<>();set.add(1);set.add(2);set.add(2);System.out.println(set.size());3. 使用HashMap来实现Map接口,可以快速查找并存储数据:Map<String, Integer> hashMap = new HashMap<>(); hashMap.put("Alice", 12);hashMap.put("Bob", 18);System.out.println(hashMap.get("Bob"));四、集合的迭代Java中的集合类都实现了Iterable接口,因此可以使用迭代器来访问集合中的元素。
Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的。。。

Java:集合,对列表(List)中的数据(整型、字符串、⽇期等)进⾏排序(正序、倒序)的。
1. 要求对List列表中的数据进⾏排序(正序、倒序),列表中的数据包括:整型(Integer)、字符串(String)、⽇期(Date)等。
对于字符串,要求允许对它按照整型进⾏排序。
2. 实现思路1. 对于整型、字符串、⽇期等数据,可以直接调⽤Collections.sort⽅法实现排序(正序、倒序)。
2. 对于字符串按照整型排序,可以写⼀个类实现Comparable接⼝,在compare⽅法中将字符转换为整型进⾏⽐较;然后再调⽤Collections.sort的⽅法,传进⼀个Comparator来实现。
3. 实现代码package com.clzhang.sample.collections;import java.util.*;public class CollectionSortTest {// 字符串按照整型排序⽐较器static class Str2IntComparator implements Comparator<String> {private boolean reverseOrder; // 是否倒序public Str2IntComparator(boolean reverseOrder) {this.reverseOrder = reverseOrder;}public int compare(String arg0, String arg1) {if(reverseOrder)return Integer.parseInt(arg1) - Integer.parseInt(arg0);elsereturn Integer.parseInt(arg0) - Integer.parseInt(arg1);}}public static void main(String[] args) throws Exception {// ⽣成测试数据List<String> list = new ArrayList<String>();list.add("1001");list.add("1002");list.add("1003");list.add("1");list.add("2");list.add("3");list.add("11");list.add("12");list.add("13");// 整型、字符串、⽇期都是类似的操作;下⾯只给出字符串的⽰范System.out.println("当前顺序...");System.out.println(list);Collections.sort(list);System.out.println("默认排序后...");System.out.println(list);Collections.sort(list, Collections.reverseOrder());System.out.println("倒序后...");System.out.println(list);Collections.sort(list, new Str2IntComparator(false));System.out.println("按整型排序后...");System.out.println(list);Collections.sort(list, new Str2IntComparator(true));System.out.println("按整型倒序后...");System.out.println(list);}}输出:当前顺序...[1001, 1002, 1003, 1, 2, 3, 11, 12, 13]默认排序后...[1, 1001, 1002, 1003, 11, 12, 13, 2, 3]倒序后...[3, 2, 13, 12, 11, 1003, 1002, 1001, 1]按整型排序后...[1, 2, 3, 11, 12, 13, 1001, 1002, 1003]按整型倒序后...[1003, 1002, 1001, 13, 12, 11, 3, 2, 1]。
java集合

比较指定的对象与列表是否相等。 E get(int index)
返回列表中指定位置的元素。
int indexOf(Object o)
返回列表中首次出现指定元素的索引,如果列表不包含此 元素,则返回 -1。
Iterator iterator()
<E>
返回以正确顺序在列表的元素上进行迭代的迭代器。
int lastIndexOf(Object o)
List接口和LinkedList类 3-3
• 第二步:具体实现
public clas1s、Fir添stL加eve头lTit条leD、B3以{ 及最末条新闻标题 public static void main(String[] args) { FirstL2ev、elT获itle取car头= n条ew、Fir以stL及eve最lTit末le(1条, "汽新车闻", "标管理题员", new Date()); FirstLevelTitle medical = new FirstLevelTitle(2, "医学", "管理员",new Date()); 3、删除头条、以及最末条新闻标题
iterator() 返回在此 collection 的元素上进行迭代的迭代器。
remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操
作)。 size()
返回此 collection 中的元素数。 toArray()
返回包含此 collection 中所有元素的数组。
返回列表中最后出现指定元素的索引,如果列表不包含此 元素,则返回 -1。
List常用方法
java中集合知识点总结

java中集合知识点总结1. Collection接口Collection接口是Java中集合类的基本接口,它定义了一组通用的操作方法,包括添加、删除、查找等操作。
Collection接口有三个主要的子接口:List、Set和Queue。
(1) ListList是一种有序的集合,它允许重复的元素,并且可以按照索引访问元素。
List接口中有常用的实现类:ArrayList、LinkedList和Vector。
其中,ArrayList是基于数组实现的,它支持快速的随机访问和插入操作;LinkedList是基于双向链表实现的,它支持快速的插入和删除操作;Vector是线程安全的类,它支持并发访问。
(2) SetSet是一种不允许重复元素的集合,它用来存储唯一的元素。
Set接口中有常用的实现类:HashSet、LinkedHashSet和TreeSet。
其中,HashSet是基于哈希表实现的,它提供了快速的查找和插入操作;LinkedHashSet是基于哈希表和链表实现的,它保持了元素的插入顺序;TreeSet是基于红黑树实现的,它提供了有序的集合。
(3) QueueQueue是一种先进先出的集合,它用来存储元素,并且支持插入和删除操作。
Queue接口中有常用的实现类:LinkedList和PriorityQueue。
其中,LinkedList可以作为Queue来使用,它支持快速的插入和删除操作;PriorityQueue是基于堆实现的,它提供了优先级队列的功能。
2. Map接口Map接口是Java中的映射表,它用来存储键值对的数据。
Map接口中有常用的实现类:HashMap、LinkedHashMap、TreeMap和Hashtable。
其中,HashMap是基于哈希表实现的,它提供了快速的查找和插入操作;LinkedHashMap是基于哈希表和链表实现的,它保持了键值对的插入顺序;TreeMap是基于红黑树实现的,它提供了有序的映射表;Hashtable是线程安全的类,它支持并发访问。
Java中常用的集合类有哪些?它们的使用场景是什么?

Java中常用的集合类有哪些?它们的使用场景是什么?Java作为目前最为流行的编程语言之一,其优越的面向对象编程思想和强大的类库使其成为了广大编程爱好者和专业开发者的首选语言之一。
在Java开发中,常用的集合类具有广泛的应用场景,可以大大简化我们代码的编写和维护。
在本篇文章中,我们将介绍Java中常用的集合类有哪些,它们的使用场景是什么,以及如何选择合适的集合类来应对各种场景。
一、Java中常用的集合类Java中常用的集合类包括List、Set、Map等,具体如下:1.ListList是Java中最基础和最常用的集合类之一,它是一个有序的集合,可以存储重复的元素。
List提供了一系列的方法用来操作列表中的元素,如添加、删除、获取、修改等。
常见的List有ArrayList 和LinkedList。
2.SetSet是Java中的另一个基础集合类,它是一个无序的集合,不允许存储重复的元素。
Set提供了一系列的方法用来操作集合中的元素,如添加、删除、获取等。
常见的Set有HashSet、TreeSet。
3.MapMap是Java中常用的映射关系集合,它存储键值对,支持通过键来访问值。
Map提供了一系列的方法用来操作映射关系,如添加、删除、获取、修改等。
常见的Map有HashMap、TreeMap、ConcurrentHashMap等。
二、Java中常用集合类的使用场景不同的集合类有不同的使用场景,我们需要根据具体的业务需求来选择合适的集合类。
下面我们来介绍几种常见的使用场景及其对应的集合类。
1.需要随机访问元素的情况:ArrayListArrayList是Java中常用的集合类之一,它支持随机访问,通过索引访问元素的时间复杂度为O(1),是处理元素数量较大的情况下的较好选择。
2.需要频繁插入或删除元素的情况:LinkedListLinkedList是另一个常用的集合类,它支持快速的插入和删除操作,通过节点互相关联实现。
java中的常用集合类整理

java中的常⽤集合类整理⽬录Collection接⼝集合的遍历:iterator 接⼝集合的遍历:增强for循环List接⼝ArrayListSet接⼝Map接⼝HashMapLinkedHashMapTreeMapPropertiesCollections⼯具类总结集合、数组都是对多个数据进⾏存储操作(主要是内存层⾯存储)的结构,简称Java容器。
数组的特点1.数组初始化以后,长度确定不可变2.数组定义好,其元素的类型确定不可变(可能有多态性)3.数组中提供的⽅法有限,对于添加、删除、插⼊数据等操作不⽅便。
4.获取数组中实际元素的个数是没有办法的。
5.数组存储数据的特点是有序、可重复的。
Java集合可分为Collection和Map两种体系,集合存储的优点是解决数组存储数据⽅⾯的弊端。
Collection接⼝:单列数据,⽤来存储⼀个⼀个的对象List接⼝:元素有序,可重复的集合 --> '动态'数组Set接⼝ :元素⽆序、不可重复的集合Map接⼝:双列数据,保存有映射关系(键值对)的集合Collection接⼝向collection接⼝的实现类的对象中添加数据obj时,要求obj所在类要重写equals⽅法。
Abstract Methodsadd(Object e):将元素e添加到集合中size():获取添加的元素个数addAll(Collection coll):将形参coll集合的元素添加到当前集合中clear():清空集合元素,集合仍然存在,只是集合⾥没有元素isEmpty():判断当前集合是否为空contains(Object obj):判断当前集合中是否包含obj,是否包含是通过调⽤obj的equals判断containsAll(Collection coll):判断形参coll中的所有元素是否都存在当前集合中。
remove(Object obj):移除某个元素,同样通过equals寻找移除的元素removeAll(Collection coll):从当前集合中移除coll集合中所有的元素,需要调⽤equals函数retainAll(Collection coll):求两个集合的交集,结果为修改当前集合后的集合。
java8集合自定义排序方法

java8集合自定义排序方法Java 8新增了一些功能,使得在集合中进行自定义排序变得更加简单和灵活。
在Java 8中,可以使用lambda表达式和函数式接口来实现自定义排序方法。
在Java 8中,集合类(如List、Set、Map)都新加了一个sort方法,该方法接收一个Comparator接口的实现作为参数,用于定义自定义排序规则。
Comparator接口是一个函数式接口,只有一个抽象方法compare(Object obj1, Object obj2)。
该方法接收两个对象作为参数,返回一个int类型的值,用于比较两个对象的大小。
其中,返回值为负数表示obj1应排在obj2之前,返回值为正数表示obj1应排在obj2之后,返回值为0表示两个对象相等。
下面是一个例子,展示如何使用lambda表达式和Comparator接口来实现自定义排序:List<String> names = Arrays.asList("Bob", "Alice", "Charlie", "David");使用lambda表达式和Comparator接口排序names.sort((String name1, String name2) -> name1pareTo(name2));打印排序后的结果names.forEach(System.out::println);在上面的例子中,首先创建了一个包含四个字符串的List对象names。
然后使用sort方法和lambda表达式来定义自定义排序规则。
在lambda表达式中,调用了String类的compareTo方法来比较两个字符串的大小。
最后使用forEach方法遍历并打印排序后的结果。
除了使用lambda表达式,还可以使用方法引用来实现自定义排序。
方法引用是一种简化lambda表达式的语法。
Java集合排序及java集合类详解(Collection、List、Map、Set)

Java集合排序及java集合类详解(Collection, List, Set, Map)摘要内容Java里面最重要,最常用也就是集合一部分了。
能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。
本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
关键字:Collection , List ,Set , Map , 集合,框架。
目录1 集合框架 (2)1.1 集合框架概述 (2)1.1.1 容器简介 (2)1.1.2 容器的分类 (4)1.2 Collection (6)1.2.1 常用方法 (6)1.2.2 迭代器 (8)1.3 List (10)1.3.1 概述 (10)1.3.2 常用方法 (11)1.3.3 实现原理 (15)1.4 Map (18)1.4.1 概述 (18)1.4.2 常用方法 (18)1.4.3 Comparable 接口 (23)1.4.4 实现原理 (25)1.4.5 覆写hashCode() (29)1.5 Set (33)1.5.1 概述 (33)1.5.2 常用方法 (34)1.5.3 实现原理 (38)1.6 总结:集合框架中常用类比较 (39)2 练习 (40)3 附录:排序 (41)1集合框架1.1集合框架概述1.1.1容器简介到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一些有意义的事情。
举例来说,假设要存储许多雇员,不同的雇员的区别仅在于雇员的身份证号。
我们可以通过身份证号来顺序存储每个雇员,但是在内存中实现呢?是不是要准备足够的内存来存储1000个雇员,然后再将这些雇员逐一插入?如果已经插入了500条记录,这时需要插入一个身份证号较低的新雇员,该怎么办呢?是在内存中将500条记录全部下移后,再从开头插入新的记录? 还是创建一个映射来记住每个对象的位置?当决定如何存储对象的集合时,必须考虑如下问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java集合排序及java集合类详解(Collection, List, Set, Map)摘要内容Java里面最重要,最常用也就是集合一部分了。
能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。
本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
关键字:Collectio n , List ,Set , Map , 集合,框架。
目录1 集合框架 (2)1.1 集合框架概述 (2)1.1.1 容器简介 (2)1.1.2 容器的分类 (4)1.2 Collec tio n (6)1.2.1 常用方法 (6)1.2.2 迭代器 (8)1.3 List (10)1.3.1 概述 (10)1.3.2 常用方法 (11)1.3.3 实现原理 (15)1.4 Map (18)1.4.1 概述 (18)1.4.2 常用方法 (18)1.4.3 Comparable接口 (23)1.4.4 实现原理 (25)1.4.5 覆写hashCode() (29)1.5 Set (33)1.5.1 概述 (33)1.5.2 常用方法 (34)1.5.3 实现原理 (38)1.6 总结:集合框架中常用类比较 (39)2 练习 (40)3 附录:排序 (41)1集合框架1.1集合框架概述1.1.1容器简介到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一些有意义的事情。
举例来说,假设要存储许多雇员,不同的雇员的区别仅在于雇员的身份证号。
我们可以通过身份证号来顺序存储每个雇员,但是在内存中实现呢?是不是要准备足够的内存来存储1000个雇员,然后再将这些雇员逐一插入?如果已经插入了500条记录,这时需要插入一个身份证号较低的新雇员,该怎么办呢?是在内存中将500条记录全部下移后,再从开头插入新的记录? 还是创建一个映射来记住每个对象的位置?当决定如何存储对象的集合时,必须考虑如下问题。
对于对象集合,必须执行的操作主要以下三种:◆添加新的对象◆删除对象◆查找对象我们必须确定如何将新的对象添加到集合中。
可以将对象添加到集合的末尾、开头或者中间的某个逻辑位置。
从集合中删除一个对象后,对象集合中现有对象会有什么影响呢?可能必须将内存移来移去,或者就在现有对象所驻留的内存位置下一个“洞”。
在内存中建立对象集合后,必须确定如何定位特定对象。
可建立一种机制,利用该机制可根据某些搜索条件(例如身份证号)直接定位到目标对象;否则,便需要遍历集合中的每个对象,直到找到要查找的对象为止。
前面大家已经学习过了数组。
数组的作用是可以存取一组数据。
但是它却存在一些缺点,使得无法使用它来比较方便快捷的完成上述应用场景的要求。
1.首先,在很多数情况下面,我们需要能够存储一组数据的容器,这一点虽然数组可以实现,但是如果我们需要存储的数据的个数多少并不确定。
比如说:我们需要在容器里面存储某个应用系统的当前的所有的在线用户信息,而当前的在线用户信息是时刻都可能在变化的。
也就是说,我们需要一种存储数据的容器,它能够自动的改变这个容器的所能存放的数据数量的大小。
这一点上,如果使用数组来存储的话,就显得十分的笨拙。
2.我们再假设这样一种场景:假定一个购物网站,经过一段时间的运行,我们已经存储了一系列的购物清单了,购物清单中有商品信息。
如果我们想要知道这段时间里面有多少种商品被销售出去了。
那么我们就需要一个容器能够自动的过滤掉购物清单中的关于商品的重复信息。
如果使用数组,这也是很难实现的。
3.最后再想想,我们经常会遇到这种情况,我知道某个人的帐号名称,希望能够进一步了解这个人的其他的一些信息。
也就是说,我们在一个地方存放一些用户信息,我们希望能够通过用户的帐号来查找到对应的该用户的其他的一些信息。
再举个查字典例子:假设我们希望使用一个容器来存放单词以及对于这个单词的解释,而当我们想要查找某个单词的意思的时候,能够根据提供的单词在这个容器中找到对应的单词的解释。
如果使用数组来实现的话,就更加的困难了。
为解决这些问题,Java里面就设计了容器集合,不同的容器集合以不同的格式保存对象。
数学背景在常见用法中,集合(collection)和数学上直观的集(set)的概念是相同的。
集是一个唯一项组,也就是说组中没有重复项。
实际上,“集合框架”包含了一个Set接口和许多具体的Set类。
但正式的集概念却比Java 技术提前了一个世纪,那时英国数学家George Boo le 按逻辑正式的定义了集的概念。
大部分人在小学时通过我们熟悉的维恩图引入的“集的交”和“集的并”学到过一些集的理论。
集的基本属性如下:◆集内只包含每项的一个实例◆集可以是有限的,也可以是无限的◆可以定义抽象概念集不仅是逻辑学、数学和计算机科学的基础,对于商业和系统的日常应用来说,它也很实用。
“连接池”这一概念就是数据库服务器的一个开放连接集。
Web 服务器必须管理客户机和连接集。
文件描述符提供了操作系统中另一个集的示例。
映射是一种特别的集。
它是一种对(pair)集,每个对表示一个元素到另一元素的单向映射。
一些映射示例有:◆IP 地址到域名(DNS)的映射◆关键字到数据库记录的映射◆字典(词到含义的映射)◆ 2 进制到10 进制转换的映射就像集一样,映射背后的思想比Java 编程语言早的多,甚至比计算机科学还早。
而Java中的Map 就是映射的一种表现形式。
1.1.2容器的分类既然您已经具备了一些集的理论,您应该能够更轻松的理解“集合框架”。
“集合框架”由一组用来操作对象的接口组成。
不同接口描述不同类型的组。
在很大程度上,一旦您理解了接口,您就理解了框架。
虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。
框架接口层次结构如下图所示。
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:1)Co llectio n 。
一组对立的元素,通常这些元素都服从某种规则。
List必须保持元素特定的顺序,而Set 不能有重复元素。
2)Map 。
一组成对的“键值对”对象。
初看起来这似乎应该是一个Collectio n ,其元素是成对的对象,但是这样的设计实现起来太笨拙了,于是我们将Map明确的提取出来形成一个独立的概念。
另一方面,如果使用Collectio n 表示Map的部分内容,会便于查看此部分内容。
因此Map一样容易扩展成多维Map ,无需增加新的概念,只要让Map中的键值对的每个“值”也是一个M ap即可。
Collection和Map的区别在于容器中每个位置保存的元素个数。
Co llectio n 每个位置只能保存一个元素(对象)。
此类容器包括:List ,它以特定的顺序保存一组元素;Set 则是元素不能重复。
Map保存的是“键值对”,就像一个小型数据库。
我们可以通过“键”找到该键对应的“值”。
◆Co llectio n –对象之间没有指定的顺序,允许重复元素。
◆Set –对象之间没有指定的顺序,不允许重复元素◆List–对象之间有指定的顺序,允许重复元素,并引入位置下标。
◆Map –接口用于保存关键字(Key)和数值(Value)的集合,集合中的每个对象加入时都提供数值和关键字。
Map 接口既不继承Set 也不继承Co llectio n。
List、Set、Map共同的实现基础是Object数组除了四个历史集合类外,Java 2 框架还引入了六个集合实现,如下表所示。
这里没有Collection接口的实现,接下来我们再来看一下下面的这张关于集合框架的大图:这张图看起来有点吓人,熟悉之后就会发现其实只有三种容器:Map,List和Set ,它们各自有两个三个实现版本。
常用的容器用黑色粗线框表示。
点线方框代表“接口”,虚线方框代表抽象类,而实线方框代表普通类(即具体类,而非抽象类)。
虚线箭头指出一个特定的类实现了一个接口(在抽象类的情况下,则是“部分”实现了那个接口)。
实线箭头指出一个类可生成箭头指向的那个类的对象。
例如任何集合( Colle ction )都能产生一个迭代器( Iterator ),而一个List 除了能生成一个ListIterato r (列表迭代器)外,还能生成一个普通迭代器,因为List 正是从集合继承来的.1.2Collection1.2.1常用方法Collection接口用于表示任何对象或元素组。
想要尽可能以常规方式处理一组元素时,就使用这一接口。
Collec tion 在前面的大图也可以看出,它是List和Set 的父类。
并且它本身也是一个接口。
它定义了作为集合所应该拥有的一些方法。
如下:注意:集合必须只有对象,集合中的元素不能是基本数据类型。
Collect ion接口支持如添加和除去等基本操作。
设法除去一个元素时,如果这个元素存在,除去的仅仅是集合中此元素的一个实例。
◆boo lean add(Objec t element)◆boo lean remove(Objec t element)Collection 接口还支持查询操作:◆int size()◆boo lean isEmpty()◆boo lean c ontains(Objec t element)◆Iterator iterator()组操作:Collection 接口支持的其它操作,要么是作用于元素组的任务,要么是同时作用于整个集合的任务。
◆boo lean c ontainsAll(Co llec tion c ollec tion)◆boo lean add All(Co llec tion c ollec tion)◆vo id c lear()◆vo id removeAll(Co llec tion c ollec tion)◆vo id retain All(Collec tion c ollec tion)containsAll() 方法允许您查找当前集合是否包含了另一个集合的所有元素,即另一个集合是否是当前集合的子集。
其余方法是可选的,因为特定的集合可能不支持集合更改。
addAll() 方法确保另一个集合中的所有元素都被添加到当前的集合中,通常称为并。
clear() 方法从当前集合中除去所有元素。
removeAll() 方法类似于clear() ,但只除去了元素的一个子集。
retainAll() 方法类似于removeAll() 方法,不过可能感到它所做的与前面正好相反:它从当前集合中除去不属于另一个集合的元素,即交。
我们看一个简单的例子,来了解一下集合类的基本方法的使用:import java.util.*;public class CollectionToArray {public static void main(String[] args) {Collection collection1=new ArrayList();//创建一个集合对象collection1.add("000");//添加对象到Collection集合中collection1.add("111");collection1.add("222");System.out.println("集合collection1的大小:"+collection1.size());System.out.println("集合collection1的内容:"+collection1);collection1.remove("000");//从集合collection1中移除掉"000" 这个对象System.out.println("集合collection1移除000 后的内容:"+collection1);System.out.println("集合collection1中是否包含000 :"+collection1.contains("000"));System.out.println("集合collection1中是否包含111 :"+collection1.contains("111"));Collection collection2=new ArrayList();collection2.addAll(collection1);//将collection1 集合中的元素全部都加到collection2中System.out.println("集合collection2的内容:"+collection2);collection2.clear();//清空集合collection1 中的元素System.out.println("集合collection2是否为空:"+collection2.isEmpty());//将集合collection1转化为数组Object s[]= collection1.toArray();for(int i=0;i<s.length;i++){System.out.println(s[i]);}}}运行结果为:集合collection1的大小:3集合collection1的内容:[000, 111, 222]集合collection1移除000 后的内容:[111, 222]集合collection1中是否包含000 :false集合collection1中是否包含111 :true集合collection2的内容:[111, 222]集合collection2是否为空:true111222这里需要注意的是,Collectio n 它仅仅只是一个接口,而我们真正使用的时候,确是创建该接口的一个实现类。