当前位置: 首页> 娱乐> 八卦 > 杭州注册公司代办费用_如何免费建立个人网站_百度网站优化方案_百度推广登录入口官网

杭州注册公司代办费用_如何免费建立个人网站_百度网站优化方案_百度推广登录入口官网

时间:2025/9/14 7:36:23来源:https://blog.csdn.net/qq_69304031/article/details/145579664 浏览次数:0次
杭州注册公司代办费用_如何免费建立个人网站_百度网站优化方案_百度推广登录入口官网

目录

Java集合框架详解

一、集合框架概述

1. 为什么需要集合?

2. 集合框架的体系结构

二、Collection接口

三、List接口

1. ArrayList

2. LinkedList

3. Vector

四、Set接口

1. HashSet

2. LinkedHashSet

3. TreeSet

五、泛型

1. 泛型集合

2. 自定义泛型类

六、增强的for循环

七、工具类

1. Arrays

2. Collections

八、面试题

1. Collection和Collections的区别

2. ArrayList和LinkedList的区别

总结


Java集合框架详解

Java集合框架是Java编程中非常重要的一部分,它提供了丰富的数据结构和算法,用于存储和操作数据。集合框架的核心接口和类位于java.util包中,主要包括ListSetMap等。本文将详细介绍集合框架的体系结构、常用方法以及常见集合类的使用。


一、集合框架概述

1. 为什么需要集合?

  • 数组的局限性

    • 数组长度固定,无法动态扩展。

    • 数组功能单一,缺乏插入、删除、搜索等操作。

    • 数组不支持泛型,类型安全性较差。

  • 集合的优势

    • 动态扩展:集合长度可以根据需要自动调整。

    • 功能丰富:提供了插入、删除、搜索、排序等操作。

    • 类型安全:通过泛型支持类型检查。

    • 多样化的数据结构:支持列表、集合、映射等多种数据结构。

2. 集合框架的体系结构

Java集合框架主要分为两大类:

  • 单列集合Collection接口及其子接口(ListSet)。

  • 双列集合Map接口及其实现类(HashMapTreeMap等)。


二、Collection接口

Collection是单列集合的根接口,定义了集合的基本操作。常用方法包括:

  • 添加元素

    • add(E e):添加单个元素。

    • addAll(Collection<? extends E> c):添加另一个集合的所有元素。

  • 删除元素

    • remove(Object o):删除指定元素。

    • removeAll(Collection<?> c):删除与指定集合相同的元素。

    • clear():清空集合。

  • 判断元素

    • contains(Object o):判断是否包含指定元素。

    • isEmpty():判断集合是否为空。

  • 转换为数组

    • toArray():将集合转换为数组。


三、List接口

List是有序集合,允许元素重复,支持索引访问。常用实现类包括ArrayListLinkedListVector

1. ArrayList

  • 特点

    • 底层基于数组实现。

    • 支持动态扩容,初始容量为10,每次扩容为原来的1.5倍。

    • 查询效率高,增删效率低(需要移动元素)。

    • 线程不安全。

  • 示例

    List<String> list = new ArrayList<>();
    list.add("A");
    list.add("B");
    list.add(1, "C"); // 在索引1处插入元素
    System.out.println(list); // 输出:[A, C, B]

2. LinkedList

  • 特点

    • 底层基于双向链表实现。

    • 增删效率高,查询效率低(需要遍历链表)。

    • 线程不安全。

  • 示例

    List<String> list = new LinkedList<>();
    list.add("A");
    list.add("B");
    list.addFirst("C"); // 在头部插入元素
    System.out.println(list); // 输出:[C, A, B]

3. Vector

  • 特点

    • 底层基于数组实现。

    • 线程安全,但性能较低。

    • 初始容量为10,每次扩容为原来的2倍。

  • 示例

    Vector<String> vector = new Vector<>();
    vector.add("A");
    vector.add("B");
    System.out.println(vector); // 输出:[A, B]


四、Set接口

Set是无序集合,不允许元素重复。常用实现类包括HashSetLinkedHashSetTreeSet

1. HashSet

  • 特点

    • 基于哈希表实现。

    • 元素唯一,允许一个null值。

    • 线程不安全。

  • 示例

    Set<String> set = new HashSet<>();
    set.add("A");
    set.add("B");
    set.add("A"); // 重复元素不会被添加
    System.out.println(set); // 输出:[A, B]

2. LinkedHashSet

  • 特点

    • 基于链表和哈希表实现。

    • 元素唯一,且保持插入顺序。

    • 线程不安全。

  • 示例

    Set<String> set = new LinkedHashSet<>();
    set.add("B");
    set.add("A");
    set.add("C");
    System.out.println(set); // 输出:[B, A, C]

3. TreeSet

  • 特点

    • 基于红黑树实现。

    • 元素唯一,且按自然顺序或自定义顺序排序。

    • 不允许null值。

    • 线程不安全。

  • 示例

    Set<String> set = new TreeSet<>();
    set.add("B");
    set.add("A");
    set.add("C");
    System.out.println(set); // 输出:[A, B, C]


五、泛型

泛型用于在编译时检查类型安全性,避免类型转换错误。集合框架广泛使用泛型。

1. 泛型集合

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
// list.add(123); // 编译错误,类型不匹配

2. 自定义泛型类

class Box<T> {private T value;public void setValue(T value) { this.value = value; }public T getValue() { return value; }
}Box<String> box = new Box<>();
box.setValue("Hello");
System.out.println(box.getValue()); // 输出:Hello

六、增强的for循环

增强的for循环用于遍历数组或集合,语法简洁。

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");for (String s : list) {System.out.println(s);
}

七、工具类

1. Arrays

  • 常用方法

    • toString():将数组转换为字符串。

    • sort():对数组排序。

    • binarySearch():对数组进行二分查找。

    • asList():将数组转换为List

2. Collections

  • 常用方法

    • sort():对集合排序。

    • reverse():反转集合。

    • shuffle():随机打乱集合。


八、面试题

1. CollectionCollections的区别

  • Collection是集合的根接口。

  • Collections是操作集合的工具类,提供了排序、查找等方法。

2. ArrayListLinkedList的区别

  • ArrayList基于数组,查询效率高,增删效率低。

  • LinkedList基于链表,增删效率高,查询效率低。


总结

Java集合框架是Java编程的核心内容之一,掌握集合框架的使用对于编写高效、可维护的代码至关重要。本文详细介绍了集合框架的体系结构、常用方法以及常见集合类的使用,希望对读者有所帮助。

关键字:杭州注册公司代办费用_如何免费建立个人网站_百度网站优化方案_百度推广登录入口官网

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: