Collection集合概述

Collection集合概述和基本使用

1.1Collection集合概述

  • 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素

  • JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现

1.2Collection集合基本使用

public class CollectionDemo01 {
    public static void main(String[] args) {
        //创建Collection集合的对象
        Collection<String> c = new ArrayList<String>();

        //添加元素:boolean add(E e)
        c.add("hello");
        c.add("world");
        c.add("java");

        //输出集合对象
        System.out.println(c);
    }
}

1.3Collection集合的常用方法

方法名说明
boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定的元素
void clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定的元素
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中元素的个数

1.4Collection集合的遍历

  • 迭代器的介绍
    • 迭代器,集合的专用遍历方式
    • Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
    • 迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的
  • Collection集合的遍历
public class IteratorDemo {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> c = new ArrayList<>();

        //添加元素
        c.add("hello");
        c.add("world");
        c.add("java");
        c.add("javaee");

        //Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
        Iterator<String> it = c.iterator();

        //用while循环改进元素的判断和获取
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
    }
}
### Java Collection 框架核心概念 #### 集合框架概述 Java Collection Framework (JCF) 提供了一系列用于存储和操作一组对象的标准接口和类。Collection 接口是整个集合层次结构的根接口,而 Map 不继承自 Collection 接口。 #### 主要接口及其关系 - **List**: 存储有序可重复元素;允许随机访问。 - **Set**: 存储无序不可重复元素。 - **Queue/Deque**: 用于实现队列的数据结构,支持先进先出(FIFO),双端队列还支持两端插入删除。 - **Map**: 键值对映射表,不允许有相同key存在。 #### 常见实现类特性说明 | 类型 | 特征 | | --- | --- | | ArrayList | 动态数组,线程不安全,查询效率高 O(1), 插入删除低效O(n)[^1]| | LinkedList | 双向链表,适合频繁增删场景, 查询性能较差 O(n)[^1] | | HashSet | 底层基于HashMap实现,提供快速查找功能 O(1)[^3] | | TreeSet | 自动排序 Set 实现,底层红黑树结构,保证自然顺序或定制化Comparator排序 [^3]| #### 关于泛型的支持 自从引入了泛型机制之后,在定义集合变量时可以指定其内部所容纳的具体类型参数,这不仅提高了程序的安全性和易读性,而且减少了强制转换带来的麻烦。 ```java // 使用ArrayList保存字符串类型的实例 List<String> list = new ArrayList<>(); list.add("hello"); ``` #### 同步与并发处理 对于多线程环境下的共享资源竞争问题,部分容器提供了同步版本(如Vector),但对于更高效的解决方案,则推荐使用`ConcurrentHashMap`, `CopyOnWriteArrayList`等并发友好型组件来替代传统方式。 ```java // 创建一个线程安全的列表 List<Integer> threadSafeList = Collections.synchronizedList(new ArrayList<>()); ``` #### 迭代器模式的应用 Iterator 和 ListIterator 是遍历集合的重要工具,前者适用于所有实现了 Iterable 接口的集合,后者则专属于 List 结构,能够前后双向移动并修改元素。 ```java // 获取迭代器进行循环打印 for (Iterator<String> it = set.iterator(); it.hasNext();) { System.out.println(it.next()); } ``` #### Stream API 的集成 随着 JDK8 发布以来,Stream 流式编程模型成为 JCF 新宠儿之一,简化了许多复杂逻辑表达的同时也提升了开发体验。 ```java // 利用stream过滤偶数并求平方后收集到新列表里 List<Integer> result = numbers.stream() .filter(x -> x % 2 == 0) .map(x -> x * x) .collect(Collectors.toList()); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值