Collection中的基本方法

本文深入探讨了Java Collection接口的基本概念、方法及应用,包括添加、删除、判断元素、获取元素个数、取交集等核心操作,通过实例代码演示了如何在实际编程中灵活运用这些方法。

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

              Collection接口

Collection是最基本的集合接口!

该接口定义了集合框架中最共性的功能!

最终使用的时候,其实使用的是该框架最子类的对象!

下面挨个探讨一下Collection接口中的基本方法:

1、添加方法:

     方法a:  boolean add(object e);  一次添加一个元素

import java.util.ArrayList;
import java.util.Collection;

public class Main_one {
	public static void main(String[] args)
	{
		Collection coll=new ArrayList();
		collectionDemo(coll);
	}
	public static void collectionDemo(Collection coll)
	{
		// 导包快捷键:ctrl+shift+o
		// 1、添加元素
		coll.add("abc1");
		coll.add("abc2");
		coll.add("abc3");
		System.out.println(coll);
	}
}
   方法b: boolean addAll(Collection c);   将一个参数容器中的元素添加到当前容器中

import java.util.ArrayList;
import java.util.Collection;

public class Main_one {
	public static void main(String[] args)
	{
		// Collection中带All的方法
		Collection c1=new ArrayList();
		Collection c2=new ArrayList();
		collectionAllDemo(c1,c2);
	}
	// Collection中带All的方法的实现
	public static void collectionAllDemo(Collection c1,Collection c2)
	{
		// 给这两个集合中存储一些元素
		c1.add("abcd1");
		c1.add("abcd2");
		c1.add("abcd3");
		c1.add("abcd4");
		c1.add("abcd5");
		
		c2.add("abcd3");
		c2.add("abcd4");
		c2.add("abcd6");
		
		System.out.println(c1);
		// 输出的是[abcd1, abcd2, abcd3, abcd4, abcd5]
		
		// 把c2中的元素添加到c1中
		c1.addAll(c2);
		System.out.println(c1);
		// 输出的是[abcd1, abcd2, abcd3, abcd4, abcd5, abcd3, abcd4, abcd6]
	}
}


2、删除方法:

      方法a:  boolean remove(object e);   删除一个指定对象

                // 2、删除元素
		coll.remove("abc2");
		System.out.println(coll);
		// 输出的是[abc1, abc3]
     方法b: boolean removeAll(Collection c);删除指定的Collection中和本Collection中相同的元素

                // 将c1中与c2相同的元素删除
		c1.removeAll(c2);
		System.out.println(c1);
		// 输出结果是[abcd1, abcd2, abcd5]
   方法c:void clear();直接将集合中的元素清空

               // 3、清空元素
		coll.clear();
		System.out.println(coll);
		// 输出的是[]

3、判断方法:

   方法a: boolean contains(object e);  是否包含指定元素

                // 4、判断是否包含指定元素
		Boolean b=coll.contains("abc1");
		System.out.println("b="+b);
		// 输出的是b=true
		Boolean d=coll.contains("abc2");
		System.out.println("d="+d);
		// 输出的是d=false
   方法b:boolean containsAll(Collection c); 是否包含指定容器中的元素
		// 3、判断是否包含指定容器中的元素
		Boolean b=c1.containsAll(c2);
		System.out.println("b="+b);
		// 输出的是b=true
  方法c:Boolean isEmpty();  判断是否有元素
		// 5、判断是否元素
		Boolean m=coll.isEmpty();
		System.out.println("m="+m);
		// 输出的是m=true: 表示没有元素
4、获取元素个数的方法:

   int size(); 获取元素的个数

                // 获取元素的个数
		System.out.println("size="+c1.size());
		// 输出的是size=8
5、取交集的方法:

   Boolean retainAll(Collection c);保留和指定collection集合中相同的元素,不相同的元素会被删除

                // 5、 取交集方法
		c1.retainAll(c2);  // 将c1中与c2中相同的元素保留,其余的删除
		System.out.println(c1);
		// 输出的是[abcd3, abcd4]

import java.util.ArrayList;
import java.util.Collection;

public class Main_one {
	public static void main(String[] args)
	{
		Collection coll=new ArrayList();
		collectionDemo(coll);
				
		// Collection中带All的方法
		Collection c1=new ArrayList();
		Collection c2=new ArrayList();
		collectionAllDemo(c1,c2);
	}
	public static void collectionDemo(Collection coll)
	{
		// 导包快捷键:ctrl+shift+o
		// 1、添加元素
		coll.add("abc1");
		coll.add("abc2");
		coll.add("abc3");
		System.out.println(coll);
		// 输出的是   [abc1, abc2, abc3]
		
		// 2、删除元素
		coll.remove("abc2");
		System.out.println(coll);
		// 输出的是[abc1, abc3]
		
		// 4、判断是否包含指定元素
		Boolean b=coll.contains("abc1");
		System.out.println("b="+b);
		// 输出的是b=true
		Boolean d=coll.contains("abc2");
		System.out.println("d="+d);
		// 输出的是d=false
		
		// 3、清空元素
		coll.clear();
		System.out.println(coll);
		// 输出的是[]	
		
		// 5、判断是否元素
		Boolean m=coll.isEmpty();
		System.out.println("m="+m);
		// 输出的是m=true: 表示没有元素
	}
	
	// Collection中带All的方法的实现
	public static void collectionAllDemo(Collection c1,Collection c2)
	{
		// 1、给这两个集合中存储一些元素
		c1.add("abcd1");
		c1.add("abcd2");
		c1.add("abcd3");
		c1.add("abcd4");
		c1.add("abcd5");
		
		c2.add("abcd3");
		c2.add("abcd4");
		c2.add("abcd6");
		
		System.out.println(c1);
		// 输出的是[abcd1, abcd2, abcd3, abcd4, abcd5]
		
		// 5、 取交集方法
		c1.retainAll(c2);
		System.out.println(c1);
		// 输出的是
		
		// 2、把c2中的元素添加到c1中
		c1.addAll(c2);
		System.out.println(c1);
		// 输出的是[abcd1, abcd2, abcd3, abcd4, abcd5, abcd3, abcd4, abcd6]
		
		// 获取元素的个数
		System.out.println("size="+c1.size());
		// 输出的是size=8
				
		// 3、判断是否包含指定容器中的元素
		Boolean b=c1.containsAll(c2);
		System.out.println("b="+b);
		// 输出的是b=true
		
		// 4、将c1中与c2相同的元素删除
		c1.removeAll(c2);
		System.out.println(c1);
		// 输出结果是[abcd1, abcd2, abcd5]
			
	}
}


<think>我们正在讨论Java中的Collection接口及其常用方法。根据引用[1]和引用[2],我们可以总结出Collection接口的常用方法,并给出示例。 引用[1]中列出了Collection接口的常用方法,引用[2]则通过一个示例程序(CollectionMethod类)演示了这些方法的使用。 注意:Collection接口本身没有直接的实现类,而是通过其子接口(如List和Set)来实现。这里以ArrayList(List接口的实现类)为例来演示。 常用方法总结如下: 1. add(E e): 添加单个元素。 2. remove(Object o): 删除指定元素(通过对象内容删除,注意:如果集合中有多个相同元素,只删除第一个)。 3. contains(Object o): 查找元素是否存在,返回布尔值。 4. size(): 获取元素个数。 5. isEmpty(): 判断集合是否为空。 6. clear(): 清空集合。 7. addAll(Collection<? extends E> c): 添加另一个集合的所有元素(添加多个元素)。 8. containsAll(Collection<?> c): 判断是否包含另一个集合的所有元素。 9. removeAll(Collection<?> c): 删除包含在指定集合中的所有元素(删除多个元素)。 此外,还有两个方法在示例中没有演示,但也是常用的: 10. iterator(): 返回一个迭代器,用于遍历集合(因为Collection继承自Iterable接口)。 11. toArray(): 将集合转换为数组。 下面我们根据引用[2]的示例代码,对每个方法进行说明,并补充一些其他常用方法。 注意:在Java中,Collection接口是集合框架的根接口,它定义了一组操作集合元素的标准方法。 我们将按照以下结构进行说明: 1. 方法声明 2. 方法功能描述 3. 参数说明 4. 返回值说明 5. 示例(部分方法) 由于引用[2]已经给出了一个完整的示例,我们可以结合该示例进行说明。 但是,请注意:示例中使用了List接口的引用(List list = new ArrayList();),这是因为ArrayList是List的子类,而List是Collection的子接口。所以这些方法Collection中定义,在List中继承,在ArrayList中实现。 下面我们详细说明每个方法:</think>### Collection接口常用方法详解 Collection接口是Java集合框架的根接口,定义了所有集合类(如List、Set、Queue)的基本操作方法。以下是核心方法及其功能说明: #### 1. **基础操作方法** | **方法签名** | **功能说明** | **返回值** | **示例** | |----------------------------------|----------------------------------|-------------|------------------------------| | `boolean add(E e)` | 添加单个元素 | 是否成功 | `list.add("Java");` | | `boolean remove(Object o)` | 删除指定元素 | 是否成功 | `list.remove("Python");` | | `boolean contains(Object o)` | 检查元素是否存在 | 是否包含 | `list.contains("Java");` | | `int size()` | 获取元素数量 | 元素个数 | `int count = list.size();` | | `boolean isEmpty()` | 判断集合是否为空 | 是否为空 | `if (list.isEmpty()) {...}` | | `void clear()` | 清空所有元素 | 无 | `list.clear();` | #### 2. **批量操作方法** | **方法签名** | **功能说明** | **示例** | |----------------------------------|----------------------------------|-----------------------------------| | `boolean addAll(Collection<? extends E> c)` | 添加另一个集合的所有元素 | `list.addAll(otherList);` | | `boolean containsAll(Collection<?> c)` | 检查是否包含指定集合的所有元素 | `list.containsAll(subSet);` | | `boolean removeAll(Collection<?> c)` | 删除指定集合包含的所有元素 | `list.removeAll(toRemove);` | | `boolean retainAll(Collection<?> c)` | **保留**指定集合中的元素(取交集) | `list.retainAll(commonElements);` | #### 3. **迭代与转换方法** | **方法签名** | **功能说明** | |----------------------------------|----------------------------------| | `Iterator<E> iterator()` | 返回集合的迭代器 | | `Object[] toArray()` | 将集合转换为数组 | | `<T> T[] toArray(T[] a)` | 将集合转换为指定类型的数组 | --- ### 方法使用示例 ```java List<String> languages = new ArrayList<>(); // 添加元素 languages.add("Java"); languages.add("Python"); languages.addAll(List.of("C++", "JavaScript")); // 批量添加 // 检查与删除 System.out.println(languages.contains("Java")); // true languages.remove("C++"); System.out.println(languages.size()); // 3 // 集合运算 List<String> webLangs = List.of("JavaScript", "TypeScript"); System.out.println(languages.containsAll(webLangs)); // false languages.retainAll(webLangs); // 只保留webLangs中的元素 ``` --- ### 关键特性说明 1. **实现类差异** - `List`实现类(如ArrayList)允许重复元素和有序存储 - `Set`实现类(如HashSet)禁止重复元素且无序 - `Queue`实现类(如LinkedList)遵循FIFO规则 2. **方法返回值** - 修改操作(add/remove)返回`boolean`表示是否改变集合 - 查询操作(contains/size)返回具体数据或状态 3. **集合操作语义** - `removeAll(Collection c)`:删除**所有**与c匹配的元素 - `retainAll(Collection c)`:保留**仅存在于c中**的元素 > 📌 **注意**:Collection接口本身无直接实现类,通过子接口(List/Set/Queue)实现具体功能[^1][^2]。 --- ### 相关问题 1. 如何处理`ConcurrentModificationException`异常? 2. `ArrayList`和`LinkedList`在`add()`/`remove()`操作上有何性能差异? 3. 如何实现自定义集合类的迭代器? 4. `Arrays.asList()`与`new ArrayList<>()`有何本质区别? [^1]: Collection接口实现类的特点 [^2]: Collection常用方法示例代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值