理解java集合

基本概念

Java 集合是 Java 中一个非常重要的概念,可以方便地存储和管理多个数据元素。在 Java 集合框架中,集合被分为两个基本类型:Collection 和 Map。其中 Collection 可以被进一步分为 List、Set 和 Queue。

List 是一个动态数组,可以快速访问其中的任意元素,而 Set 则是更加注重元素唯一性的集合,不允许重复元素。Queue 可以用于存取元素,通常用于按照一定顺序处理元素。而 Map 则允许我们使用“键-值”对来关联存储数据,并且拥有非常高效的读取和写入性能。

集合与数组的区别

(1)长度区别:集合长度可变,数组长度不可变

(2)内容区别:集合可存储不同类型元素,数组存储只可单一类型元素

(3)元素区别:集合只能存储引用类型元素,数组可存储引用类型,也可存储基本类型

常见的数据结构

数据结构指的是数据的组存储方式,不同的数据结构有不同的特点。

  1. 数组结构(ArrayList底层结构)   查询快,增删慢
  2. 链表结构(LinkedList底层结构)   查询慢,增删快
  3. 栈和队列   栈:先进后出(子弹夹,杯子)   队列:先进先出(排队,管子)

集合框架中常用的集合类型及其特点

ArrayList

ArrayList 是一个基于数组实现的动态数组,具有随机访问的特点。在数组末尾添加元素时,ArrayList 的性能非常好,但在中间插入或删除元素时,需要移动数组的大量元素,性能较差。

下面是 ArrayList 的基本用法:

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Orange");
        list.add("Banana");
        System.out.println(list.get(0)); // 输出 "Apple"
        System.out.println(list.size()); // 输出 3
        list.remove(1);
        System.out.println(list.size()); // 输出 2
    }
}

 

LinkedList

 

LinkedList 是一个基于链表实现的集合,具有插入和删除元素快的特点,但没有 ArrayList 那样的随机访问能力,并且性能相对较差。在中间插入或删除元素时,只需要对前后元素进行指针指向,无需移动其它元素。

以下是 LinkedList 的基本用法:

import java.util.LinkedList;

public class LinkedListExample {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("Apple");
        list.add("Orange");
        list.add("Banana");
        System.out.println(list.get(0)); // 输出 "Apple"
        System.out.println(list.size()); // 输出 3
        list.remove(1);
        System.out.println(list.size()); // 输出 2
    }
}

 

HashSet

HashSet 是一个基于哈希表实现的集合,具有快速查找和插入元素的特性,并且保证元素的唯一性。元素的存储位置是根据元素的哈希值计算得出的,并且对于哈希冲突的情况,HashSet 采用链表法解决。

以下是 HashSet 的基本用法:

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("Apple");
        set.add("Orange");
        set.add("Banana");
        System.out.println(set.contains("Apple")); // 输出 true
        System.out.println(set.size()); // 输出 3
        set.remove("Orange");
        System.out.println(set.size()); // 输出 2
    }
}

 

TreeMap

TreeMap 是一个基于红黑树实现的 Map,可以实现对键的排序。通过红黑树的特性,TreeMap 可以实现快速的查找、插入和删除操作,并且可以按照键值排序。

以下是 TreeMap 的基本用法:

import java.util.TreeMap;

public class TreeMapExample {
    public static void main(String[] args) {
        TreeMap<String, Integer> map = new TreeMap<>();
        map.put("apple", 2);
        map.put("banana", 1);
        map.put("orange", 3);
        System.out.println(map.get("apple")); // 输出 2
        System.out.println(map.containsKey("banana")); // 输出 true
        System.out.println(map.size()); // 输出 3
        map.remove("banana");
        System.out.println(map.size()); // 输出 2

Java集合的优点

  • 提供了丰富的数据结构和算法,适用于不同的场景和需求。
  • 提供了高性能的实现,如ArrayList和HashMap。
  • 高度可扩展,可以根据需要进行自定义实现。
  • 提供了方便的方法和工具,如迭代器和算法。

总结

本文详细介绍了Java集合框架的基本概念,并给出了ArrayList、LinkedList和HashSet等常见集合类的使用示例。这些集合类能够满足不同的需求,提供了高效的数据存储和操作方法。通过合理选择和使用集合类,开发者能够提高代码的效率和可读性。不同的集合类适用于不同的场景,因此在开发过程中需根据需求选择最合适的集合类。同时,理解集合框架的设计原理和底层实现,能够更好地应用和优化代码。希望本文对您理解和使用Java集合框架有所帮助。

谢谢阅读!如有任何问题或想法,请随时留言

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值