集合 Collection 和 集合工具类Collections

1,概述

	集合和数组一样,都是用来存储 多个 数据的.
	数组的缺点: 多个相同类型的数据 + 一旦创建长度不可变 + 按照下标遍历 + 适合查询
	集合的优点: 可以存类型不同的数据 + 可变长度 + 遍历方式丰富 + 适合查询 + 适合增删

2,继承结构

	--Collection接口
		--List子接口
			--ArrayList实现类(底层是数组,适合查询)
			--LinkedList实现类(底层是链表,适合增删)
		--Set子接口
			--HashSet实现类
	--Map接口
		--HashMap实现类

在这里插入图片描述

3,常用方法

boolean add(E e):					添加元素。
boolean addAll(Collection  c):		把小集合添加到大集合中 。
boolean contains(Object o) : 		如果此 collection 包含指定的元素,则返回 true。
boolean isEmpty() :				如果此 collection 没有元素,则返回 true。
Iterator<E> iterator():			返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o) :			从此 collection 中移除指定元素的单个实例。
int size() :						返回此 collection 中的元素数。
Objec[] toArray():					返回对象数组

4,测试

// 测试Collection
		public class Test_Collection {
		    public static void main(String[] args) {
		        // 1.创建对象
		        Collection<Integer> c = new ArrayList<>();
		        // 2.调用方法
		        c.add(2);   // 添加元素
		        c.add(1);
		        c.add(3);
		        System.out.println(c);
		
		//        c.clear();    清空集合
		//        System.out.println(c);
		
		        //如果此collection包含指定的元素,则返回true
		        System.out.println(c.contains(1));
		
		
		        Collection<Integer> c2 = new ArrayList<>();
		
		        c2.add(11);
		        // 判断集合与集合是否相等
		        System.out.println(c.equals(c2));
		        // 集合在内存中的hashcode值
		        System.out.println(c.hashCode());
		        // 从此collection中移除指定元素的单个实例
		        System.out.println(c.remove(3));
		        // 集合是否为空
		        System.out.println(c.isEmpty());
		        // 集合的元素数
		        System.out.println(c.size());
		        // 返回对象数组
		        System.out.println(Arrays.toString(c.toArray()));
		
		        //TODO 集合间的操作
		        System.out.println(c.addAll(c2)); // 把c2加到c里
		        System.out.println(c.containsAll(c2));// 判断c里包含c2
		//        System.out.println(c.removeAll(c2));    // 移除交集
		//        System.out.println(c.retainAll(c2));    //保留交集
		        System.out.println(c);
		
		        // 迭代集合提供的唯一方法 (iterator迭代器迭代)
		        Iterator<Integer> iterator = c.iterator();
		        while (iterator.hasNext()) {//hasNext()判断有元素吗?有的话就返回true
		            Integer in = iterator.next();//next() 获取元素 + 把指针往后移一位
		            System.out.println(in);
		        }
		        // 另一种高效方法
		        for (Integer in : c) {
		            System.out.println(in);
		        }
		    }
		}

Collections工具类

1.概述

--- 专门用来给 Collection集合 提供各种方法

2.常用方法

--- addAll(Collection<? super T> c, T... elements) 
--- max(Collection<? extends T> coll) 
--- min(Collection<? extends T> coll)
--- static void reverse(List<?> list)  
--- sort(List<T> list) 
--- swap(List<?> list, int i, int j) 

3.测试代码

	public static void main(String[] args) {
	        List<Integer> list =  new ArrayList<>();
	//        list.add(1);
	//        list.add(2);
	//        list.add(3);
	
	        // 一次性向集合中添加多个元素
	        System.out.println(Collections.addAll(list, 10, 20, 30));//true
	        System.out.println(list);   //[10, 20, 30]
	
	        System.out.println(Collections.max(list));//获取最大值---30
	        System.out.println(Collections.min(list));//获取最小值---10
	        Collections.reverse(list);//翻转list里的元素
	        System.out.println(list);//[30, 20, 10]
	        Collections.sort(list);  //给无序的list元素排序--12,15,33
	        System.out.println(list);//[10, 20, 30]
	        Collections.swap(list, 0, 2);//给list集合的下标0和下标2的元素交换位置--33,15,12
	        System.out.println(list);//[30, 20, 10]
	    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值