JAVA中的Collection集合方法详解

本文详细介绍了JAVA集合中的Collection类,包括其概念、优点、与数组的区别,以及核心方法如add、addAll、clear、contains等的使用,并通过代码示例展示了方法的运算结果。

JAVA集合详解

1、概念:

集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。

2、集合类带来的好处

使用Java提供的集合类有如下功能:

(1)降低编程难度:在编程中会经常需要链表向量等集合类,如果自己动手写代码实现这些类,需要花费较多的时间和精力。调用Java中提供的这些接口和类,可以很容易的处理数据。

(2)提升程序的运行速度和质量:Java提供的集合类具有较高的质量,运行时速度也较快。使用这些集合类提供的数据结构,程序员可以从“重复造轮子”中解脱出来,将精力专注于提升程序的质量和性能。

(3)无需再学习新的APl:借助泛型,只要了解了这些类的使用方法,就可以将它们应用到很多数据类型中。如果知道了LinkedList<String>的使用方法,也会知道LinkedList<Double>怎么用,则无需为每一种数据类型学习不同的API。

(4)增加代码重用性:也是借助泛型,就算对集合类中的元素类型进行了修改,集合类相关的代码也几乎不用修改。

3、几何与数组的区别

1.数组的长度是固定的,集合的长度是可变的

2.数组中存储的是同一类型的数据,集合中存储的都是对象(引用类型)

                               

4、Collection集合的方法:

                               

Collection集合的方法详解

boolean add(E e)  在集合当中添加一个元素 E->Object
    如果返回的true 说明元素确实添加到了集合当中 并且集合做出了相应的调整
    如果返回的false 说明元素没有添加到集合当中 说明该元素已经存在
    
boolean addAll(Collection<? extends E> c)  在当前集合中添加传入集合中的所有元素
    如果返回的true 说明元素确实添加到了集合当中 并且集合做出了相应的调整
    如果返回的false 说明元素没有添加到集合当中 说明该元素已经存在
void clear()  清空当前的集合

boolean contains(Object o)  判断集合当中是否包含元素o
    true 存在
    false 不存在
boolean containsAll(Collection<?> c)  判断集合当中是否包含另一个集合c中所有的元素
    true 存在
    false 不存在
boolean equals(Object o)  比较两个集合是否相等 主要比的是集合当中的元素

int hashCode()  将一个集合当成一个对象元素看待 hashCode指的就是该对象在哈希表中的角标

boolean isEmpty() 判断当前集合是否为空

boolean remove(Object o)  在集合当中移出指定的一个元素o
    true 表示该元素确实被删除了
    false 表示该元素压根就不存在集合中 所以也就删不了

boolean removeAll(Collection<?> c)  删除集合当中存在于指定集合c中的元素

boolean retainAll(Collection<?> c)  两个集合交集

int size() 返回的就是当前集合中元素的个数

5、代码举例

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

import javax.swing.SpringLayout.Constraints;

public class CollectionDemo {
	public static void main(String[] args) {
		Collection<Integer> c1 = new ArrayList<Integer>();//开始时,c1为空[]
		System.out.println(c1.add(10));		//true    [10]
		System.out.println(c1.add(20));		//true    [10,20]
		System.out.println(c1.add(30));		//true    [10,20,30]
		System.out.println(c1);				//[10, 20, 30]
		System.out.println("==================");
		
		Collection<Integer> c2 = new ArrayList<Integer>();//开始时,c2为空[]
		System.out.println(c2.add(40));		//true    [40]
		System.out.println(c2.add(50));		//true    [40,50]
		System.out.println(c2.add(60));		//true    [40,50,60]
		System.out.println(c2);			//[40, 50, 60]
		System.out.println(c1.addAll(c2));	//true    将c2中内容添加进c1中
		System.out.println(c2);				//[40, 50, 60]
		System.out.println(c1);				//[10, 20, 30, 40, 50, 60]
		c2.clear();	              	//清空c2中内容				
		System.out.println(c2);				//c2中变为空[]
		System.out.println(c1.contains(80));//false     //查询c1中是否有80
		System.out.println(c1.contains(40));//true      //查询c1中是否有40
		System.out.println(c1);				//[10, 20, 30, 40, 50, 60]
		System.out.println("====================");
		
		Collection<Integer> c3 = new ArrayList<Integer>();//开始时,c3为空[]
		c3.add(30);					//在c3中加入30 [30]		
		c3.add(40);                                     //[30,40]   
		System.out.println(c3);				//[30, 40]
		System.out.println(c1.containsAll(c3));//true   //判断c3是否全部在c1中
		System.out.println(c1.equals(c3));	//false //判断c1与c3是否相等
		System.out.println(c1.remove(20));	//true  //将c1中的20删除掉
		System.out.println(c1);				//[10, 30, 40, 50, 60]
		System.out.println(c1.retainAll(c3));//true     //求c1与c3的交集
		System.out.println(c1);				//[30, 40]
		System.out.println("===================");
		
		for(int i = 1;i<=5;i++){                        //每循环一次,c1中添加一个元素
			c1.add(i);
		}
		System.out.println(c1);				//[30, 40, 1, 2, 3, 4, 5]
	}
}

6、运算结果

                              

与判断一致!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值