首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:集合概述
第二章:Collection 接口
2.1 概述
2.2 常用方法
第三章:Iterator 迭代器
3.1 Iterator 接口
3.2 迭代器实现原理
3.3 使用 Iterator 迭代器删除元素
3.4 并发修改异常
3.5 集合存储自定义对象并迭代
3.6 增强 for 循环
3.7 java.lang.Iterable 接口
第四章:List 接口
4.1 概述
4.2 常用方法
4.3 List 特有的迭代器 ListIterator
4.4 List 接口的实现类:ArrayList
4.5 List 接口的实现类:LinkedList
第五章:Set 接口
5.1 概述
5.2 Set 的实现类:HashSet
5.3 Set 的实现类之三:TreeSet
第六章:Collections 工具类
6.1 概述
6.2 常用方法
6.3 Collections 的同步控制方法
第七章:Map 接口
7.1 概述
Map 接口常用的方法
7.2 Map 的实现类:HashMap
7.3 Map 的实现类:LinkedHashMap
7.4 Map 的实现类:Hashtable
7.5 Map 的实现类:TreeMap
7.6 Map 的实现类:Properties
当前位置:
首页>>
技术小册>>
Java语言基础10-Java中的集合
小册名称:Java语言基础10-Java中的集合
2.2.1 添加元素 添加元素对象到当前集合中: ``` boolean add(E e); ``` 添加另一个集合中的所有元素到当前集合中: ``` boolean addAll(Collection<? extends E> c); ``` 示例: ``` package com.github.demo1; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> collection = new ArrayList<>(); collection.add("hello"); collection.add("world"); System.out.println("collection = " + collection); // collection = [hello, world] } } ``` 示例: ``` package com.github.demo2; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); Collection<String> c2 = new ArrayList<>(); c2.add("ee"); c2.add("ff"); // 将c2中的所有元素添加到c1中 c1.addAll(c2); System.out.println("c1 = " + c1); // c1 = [aa, bb, cc, ee, ff] } } ``` 示例: ``` package com.github.demo3; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<Object> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); Collection<Object> c2 = new ArrayList<>(); c2.add("ee"); c2.add("ff"); c1.add(c2); System.out.println("c1 = " + c1); // c1 = [aa, bb, cc, [ee, ff]] } } ``` 2.2.2 删除元素 - 从当前集合中删除第一个找到的与 obj 对象 equals 返回 true 的元素: ``` boolean remove(Object o); ``` 从当前集合中删除所有与 coll 集合中相同的元素,即 this = this - this ∩ coll : ``` boolean removeAll(Collection<?> coll) ``` 清空集合: ``` void clear(); ``` 删除满足指定条件的集合中所有元素: ``` default boolean removeIf(Predicate<? super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator<E> each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } ``` 示例: ``` package com.github.demo4; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); System.out.println("c1 = " + c1); // c1 = [aa, bb, cc] c1.remove("aa"); System.out.println("c1 = " + c1); // c1 = [bb, cc] } } ``` 示例: ``` package com.github.demo5; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<Object> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); Collection<Object> c2 = new ArrayList<>(); c2.add("ee"); c2.add("ff"); c1.add(c2); System.out.println("c1 = " + c1); // c1 = [aa, bb, cc] c1.remove(c2); System.out.println("c1 = " + c1); // c1 = [aa, bb, cc] } } ``` 示例: ``` package com.github.demo6; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); Collection<String> c2 = new ArrayList<>(); c2.add("ee"); c2.add("ff"); c1.addAll(c2); System.out.println("c1 = " + c1); // c1 = [aa, bb, cc, ee, ff] c1.removeAll(c2); System.out.println("c1 = " + c1); // c1 = [aa, bb, cc] } } ``` 示例: ``` package com.github.day11.collection1; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * @since 2023-01-25 23:02:42 */ public class CollectionTest { /** * 删除满足指定条件的此集合中的所有元素 */ @Test public void test06() { Collection<Integer> col = new ArrayList<>(); col.add(1); col.add(2); col.add(3); col.add(4); // 删除 >2 的元素 col.removeIf((i) -> i > 2); System.out.println("col = " + col);// col = [1, 2] } } ``` 2.2.3 判断 判断当前集合是否为空集合: ``` boolean isEmpty(); ``` 判断当前集合中是否存在一个与 obj 对象 equals 返回 true 的元素: ``` boolean contains(Object o); ``` 判断 c 集合中的元素是否在当前集合中都存在,即 c 集合是否为当前集合的子集: ``` boolean containsAll(Collection<?> c) ``` 示例: ``` package com.github.demo7; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); c1.add("dd"); System.out.println("c1 = " + c1.isEmpty()); // c1 = false c1.clear(); System.out.println("c1 = " + c1.isEmpty()); // c1 = true } } ``` 示例: ``` package com.github.demo8; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); c1.add("dd"); System.out.println("c1 = " + c1.contains("aa")); // c1 = true System.out.println("c1 = " + c1.contains("aaa")); // c1 = false } } ``` 示例: ``` package com.github.demo9; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); c1.add("dd"); Collection<String> c2 = new ArrayList<>(); c2.add("aa"); c2.add("bb"); c2.add("ee"); System.out.println("c1.containsAll(c2) = " + c1.containsAll(c2)); // c1.containsAll(c2) = false Collection<String> c3 = new ArrayList<>(); c2.add("aa"); c2.add("bb"); System.out.println("c1.containsAll(c3) = " + c1.containsAll(c3)); // c1.containsAll(c3) = true } } ``` 2.2.4 获取集合中元素的个数 - 获取当前集合中实际存储的元素个数: ``` int size(); ``` 示例: ``` package com.github.demo10; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); c1.add("dd"); System.out.println("c1.size() = " + c1.size()); // c1.size() = 4 c1.clear(); System.out.println("c1.size() = " + c1.size()); // c1.size() = 0 } } ``` 2.2.5 交集 - 当前集合仅保留与 c 集合中的元素相同的元素,即当前集合中仅保留两个集合的交集: ``` boolean retainAll(Collection<?> c); ``` 示例: ``` package com.github.demo11; import java.util.ArrayList; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c1 = new ArrayList<>(); c1.add("aa"); c1.add("bb"); c1.add("cc"); c1.add("dd"); Collection<String> c2 = new ArrayList<>(); c2.add("bb"); c1.retainAll(c2); System.out.println("c1 = " + c1); // c1 = [bb] } } ``` 2.2.6 转数组 返回包含当前集合中所有元素的数组: ``` Object[] toArray(); <T> T[] toArray(T[] a); ``` 示例: ``` package com.github.demo12; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; /** * @author maxiaoke.com * @version 1.0 * */ public class Test { public static void main(String[] args) { Collection<String> c = new ArrayList<>(); c.add("aa"); c.add("bb"); c.add("cc"); c.add("dd"); Object[] objects = c.toArray(); System.out.println("objects = " + Arrays.toString(objects)); // objects = [aa, bb, cc, dd] String[] strings = c.toArray(new String[c.size()]); System.out.println("strings = " + Arrays.toString(strings)); // strings = [aa, bb, cc, dd] } } ```
上一篇:
2.1 概述
下一篇:
第三章:Iterator 迭代器
该分类下的相关小册推荐:
Java语言基础11-Java中的泛型
Java语言基础3-流程控制
java源码学习笔记
Java并发编程
Java必知必会-JDBC
Java语言基础2-运算符
Java语言基础14-枚举和注解
手把手带你学习SpringBoot-零基础到实战
Java语言基础8-Java多线程
经典设计模式Java版
Java语言基础16-JDK8 新特性
Java必知必会-Maven高级