当前位置:   article > 正文

Java 集合Collection

Java 集合Collection

集合的体系

在这里插入图片描述

Collection的结构体系

在这里插入图片描述

  • List系列集合:添加的元素是有序的、可重复、有索引
  • Set系列集合:无序、不重复、无索引
    • HashSet:无序、不重复、无索引
    • LinkedHashSet:有序、不重复、无索引
    • TreeSet:按照大小默认升序排序、不重复、无索引

Collection常见API

在这里插入图片描述

Collection<String> collection = new ArrayList<>();

// 添加元素
boolean add = collection.add("Java");
collection.add("Python");
System.out.println(collection);

// 删除元素 remove 如果集合中有多个相同元素,只会删除第一个
boolean remove = collection.remove("Java");
System.out.println(collection);

// 判断是否包含指定元素
boolean contains = collection.contains("Python");
System.out.println(contains);

// 大小
int size = collection.size();
System.out.println(size);

// 清空
collection.clear();
System.out.println(collection);

// 判断是否为空
boolean empty = collection.isEmpty();
System.out.println(empty);

// 集合转换为数组
Object[] objects =  collection.toArray();
System.out.println(Arrays.toString(objects));

// 将一个集合添加到另一个集合
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
ArrayList<String> list2 = new ArrayList<>();
list2.add("Java");
list2.add("Python");
list2.add("C++");
list.addAll(list2);
System.out.println(list);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

遍历-迭代器

迭代器:遍历集合的专用方式,Java中迭代器的代表就是Iterator

在这里插入图片描述

迭代器取元素之前一定要判断还有没有元素

ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");

// 获取迭代器对象
Iterator<String> iterator = list.iterator();
// 如果有下一个元素
while (iterator.hasNext()) {
    // 获取下一个元素
    String next = iterator.next();
    System.out.println(next);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

遍历-增强for循环

  • 增强for循环就是迭代器的简便写法
for (String s : list) {
    System.out.println(s);
}
  • 1
  • 2
  • 3

遍历-forEach

Collection.forEach(Consumer<? super E> action) 这个方法集成于Iterable接口
在这里插入图片描述

// Collection.forEach(Consumer<? super E> action)  这个方法集成于Iterable接口
list.forEach(new Consumer<String>() {
    @Override
    public void accept(String s) {
        System.out.println(s);
    }
});

// 使用lambda表达式
list.forEach(s -> System.out.println(s));

// 前后参数一样的话使用方法引用
list.forEach(System.out::println);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

集合存储对象的原理图

在这里插入图片描述

遍历删除可能出现异常

  • 解决方法:
  • 使用for循环正向删除,每次删除,i–
  • for循环逆向删除,从后向前删除
  • 使用迭代器删除的时候,不要使用集合的remove方法,使用迭代器的remove方法
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/434505
推荐阅读
相关标签
  

闽ICP备14008679号