!集合系列!
数组和集合的区别:
1、长度:
数组的长度唯一
集合的长度不唯一,可变,弹性
2、内容不同:
数组存储的元素类型是一致,统一的
集合可以存储不同类型的元素
3、元素的数据类型问题
数组可以存储基本数据类型,也可以存储引用数据类型
集合只能存储引用类型
package com.shujia.day15; /* /* boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素添加到此集合(可选操作)。 boolean removeAll(Collection<?> c) 删除指定集合中包含的所有此集合的元素(可选操作)。 boolean containsAll(Collection<?> c) 如果此集合包含指定 集合中的所有元素,则返回true。 boolean retainAll(Collection<?> c) 仅保留此集合中包含在指定集合中的元素(可选操作),输出交集(前者) */ import java.util.ArrayList; import java.util.Collection; public class CollectionDemo1 { public static void main(String[] args) { Collection<Integer> c1=new ArrayList<>(); c1.add(111);c1.add(222);c1.add(333); Collection<Integer> c2=new ArrayList<>(); c2.add(444);c2.add(555); System.out.println(c1.addAll(c2)); //true System.out.println(c1); //[111, 222, 333, 444, 555] System.out.println(c2); // [444, 555] System.out.println(c1.containsAll(c2)); //true System.out.println(c1); //[111, 222, 333, 444, 555] System.out.println(c1.removeAll(c2)); //true System.out.println(c1); //[111, 222, 333] System.out.println("------------------------"); Collection<Integer> c3=new ArrayList<>(); c3.add(111);c3.add(222);c3.add(333); Collection<Integer> c4=new ArrayList<>(); c4.add(333);c4.add(222);c4.add(444); System.out.println(c3.retainAll(c4)); // true System.out.println(c3); // [222, 333] c3输出交集 System.out.println(c4); // [333, 222, 444] c4不变 } }
集合与数组的转换,通过Arrays工具类的一个方法: public static <T> List<T> asList(T... a)
public class ArraysDemo { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(32); list.add(21); list.add(8); list.add(35); list.add(1);
//将集合转成数组 Object[] objects = list.toArray(); //将数组转成集合 List<Object> list1 = Arrays.asList(objects); for (Object o:list1) { Integer o1 = (Integer) o; System.out.println(o1); } System.out.println("-----------"); //将数组中的元素排序 Arrays.sort(objects); for (Object o:objects) { Integer o1 = (Integer) o; System.out.println(o1); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构