Java集合框架

Java 集合就像一种容器,可以把多个对象的引用放入容器中。

Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组

Java 集合可分为 Set、List 和 Map 三种体系 :

Set:无序、不可重复的集合,set又是以map为底层实现

List:有序,可重复的集合,list接口是以数组为底层实现,是有序的

Map:具有映射关系的集合,key-value(键值对),map接口底层是hash函数,无续(不是随机)

集合类:

Collection接口:

Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 集合:

public class TestCollection {
    @Test
    public void testCollection1() {
    	//声明一个集合指向子接口的实现类
    	Collection  collection=new ArrayList();
    	//1.size()返回集合元素个数
    	System.out.println(collection.size());
    	//2.add(Object obj):向集合中添加元素
    	collection.add(123);
    	collection.add("A");
    	collection.add("B");
    	collection.add(new Date());
    	System.out.println("集合的长度"+collection.size());
        //3.addAll(Collection (collection):将collection中所有元素添加到当前集合
    	Collection coll1=Arrays.asList(123);
    	collection.addAll(coll1);
    	System.out.println(collection.size());
    	//查看集合元素
    	System.out.println(collection);
    	//4.isEmpty():查看几何元素是否为空
    	System.out.println(collection.isEmpty());
    	//5.clear():清空集合元素
    	collection.clear();
    	System.out.println(collection.isEmpty());
    	System.out.println(collection.size());
    }
    
    @Test
    public void testCollection2() {
    	//声明一个集合指向子接口的实现类
    	Collection  collection=new ArrayList();
    	//2.add(Object obj):向集合中添加元素
    	collection.add(123);
    	collection.add("A");
    	collection.add("B");
    	collection.add(new Date());
    	collection.add(new Person("C",20));
    	System.out.println(collection);
    	//6.contains(Object obj):是否包含指定的元素,包含返回true,否则返回false
    	//判断依据:根据元素所在的equal方法进行判断
    	boolean b1 = collection.contains(123);
    	System.out.println(b1);
    	//如果存入的元素是自定义的对象,要求必须重写equal()方法
    	boolean b2=collection.contains(new Person("C",20));
    	System.out.println(b2);
    	//7.containAll(Collection collection):判断当前集合是否包含collection所有中的元素
    	Collection coll1=new ArrayList();
    	coll1.add(123);
    	coll1.add("A");
    	boolean b3=collection.containsAll(coll1);
    	System.out.println(b3);
    	//8.retainAll(Collection collection):返回当前集合中与形参集合共有的元素给当前集合
    	collection.retainAll(coll1);
    	System.out.println(collection);
    	//9.remove(Object obj):删除集合中的元素,删除成功返回true,反之false
    	boolean b4=collection.remove(new Date());
    	System.out.println(b4);	
    }
   @Test
    public void testCollection3() {
    	//声明一个集合指向子接口的实现类
    	Collection  coll=new ArrayList();
    	//2.add(Object obj):向集合中添加元素
    	coll.add(123);
    	coll.add("A");
    	coll.add("B");
    	coll.add(new Date());
    	coll.add(new Person("C",20));
    	Collection coll1=new ArrayList();
    	coll1.add(123);
    	coll1.add("A");
    	//10.removeAll(Collection coll):从当前集合中删除包含在coll中的元素
    	//coll.removeAll(coll1);
    	System.out.println(coll);
    	//11.equal(Object obj):判断集合中所以有的元素是否相同
    	Collection coll2=new ArrayList();
    	coll2.add(123);
    	coll2.add("A");
    	System.out.println(coll1.equals(coll2));
    	//12.toArray():将集合转化为数组
    	Object[] objects = coll.toArray();
    	System.out.println("------");
    	for (int i = 0; i < objects.length; i++) {
			System.out.println(objects[i]);
		}
    	//13.interator():返回一个Iterator接口实现类的对象
    	Iterator iterator = coll.iterator();
    	
   }
}

使用 Iterator 接口遍历集合元素

Iterator 接口主要用于遍历 Collection 集合中的元素,Iterator 对象也被称为迭代器。

Iterator 接口隐藏了各种 Collection 实现类的底层细节,向应用程序提供了遍历 Collection 集合元素的统一编程接口。

Iterator 仅用于遍历集合,Iterator 本身并不提供存放对象的能力。

如果需要创建 Iterator 对象,则必须有一个被迭代的集合。

public class TestIterator {
	//1.使用迭代器方式实现集合的遍历
	@Test
	public void test1() {
		 Collection coll = new ArrayList();
		 coll.add("jack");
		 coll.add("rose");
		 coll.add(123);
		 coll.add(new Date());
		 coll.add(new Person("zhangsan",20));
		 Iterator iterator = coll.iterator();
		 //判断有没有下一个元素
		 while(iterator.hasNext()) {
			 //next()取出集合的元素
			 System.out.println(iterator.next());
		 }
	}
	@Test
	public void test2 () {
		 Collection coll = new ArrayList();
		 coll.add("jack");
		 coll.add("rose");
		 coll.add(123);
		 coll.add(new Date());
		 coll.add(new Person("zhangsan",20));
		 Iterator iterator = coll.iterator();
		 for(Object obj : coll) {
			 System.out.println(obj);
		 }
		 System.out.println("=========");
		
	}
}

JDK提供了 foreach 循环迭代访问 Collection

List接口

Set接口

Map接口

泛型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fugogo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值