Java essay Java essay
首页
  • Java基础
  • Java进阶
  • 设计模式
  • 多线程
  • Java你不知道的小事
  • Spring初识
  • Spring进阶
  • SpringBoot基础
  • SpringBoot进阶
  • 什么是微服务
  • SpringCloud全家桶
  • Dubbo
  • SpringCloud Alibaba
  • Vue
  • 小程序
  • 博客搭建
  • 数据库
  • python
  • 大数据
  • 性能分析优化
  • 中间件
  • 云原生
  • 面试
  • 外卖霸王餐
  • 打工人的带饭生活
  • 30岁我该怎么办
友链
关于我
GitHub (opens new window)

Mr.Fire

全栈工程师
首页
  • Java基础
  • Java进阶
  • 设计模式
  • 多线程
  • Java你不知道的小事
  • Spring初识
  • Spring进阶
  • SpringBoot基础
  • SpringBoot进阶
  • 什么是微服务
  • SpringCloud全家桶
  • Dubbo
  • SpringCloud Alibaba
  • Vue
  • 小程序
  • 博客搭建
  • 数据库
  • python
  • 大数据
  • 性能分析优化
  • 中间件
  • 云原生
  • 面试
  • 外卖霸王餐
  • 打工人的带饭生活
  • 30岁我该怎么办
友链
关于我
GitHub (opens new window)
  • Java基础

    • 认识Java语言
    • Java环境搭建
    • 第一个Java程序
    • Java基础语法
    • Java数据类型
    • Java修饰符
    • Java面向对象
    • Java输入输出流
    • Java字符串
    • Java集合
      • Java集合
      • List接口
        • List接口的实现类
        • 代码示例
      • Set接口
        • Set接口的实现类
        • 代码示例
      • Map接口
        • Map接口的实现类
        • 代码示例
    • Java多线程编程
    • Java网络编程
    • 线程之间如何进行通讯
  • Java进阶

  • 设计模式

  • 多线程

  • 你不知道的小事

  • Java基础
  • Java基础
Mr.Fire
2024-05-02
目录

Java集合

# Java集合

Java集合是Java中用于存储、管理和访问集合数据的容器。Java集合主要分为以下几种:

  • List:列表,元素有序、可重复。
  • Set:集合,元素无序、不可重复。
  • Map:映射,元素是键值对,键不可重复。

Java集合的特点:

  • 集合中的元素可以重复,但集合本身不允许重复。
  • 集合中的元素可以按顺序访问,但集合本身不保证元素的顺序。
  • 集合中的元素可以按索引访问,但集合本身不保证元素的索引。
  • 集合中的元素可以动态增删,但集合本身不保证元素的动态增删。

Java集合的接口:

  • Collection:集合接口,定义了集合的基本操作。
  • List:列表接口,继承于Collection接口,定义了列表的基本操作。
  • Set:集合接口,继承于Collection接口,定义了集合的基本操作。
  • Map:映射接口,继承于Collection接口,定义了映射的基本操作。

# List接口

List接口是Java集合框架中最常用的接口之一,它代表一个有序的集合,元素可以重复。List接口提供了对元素进行增删改查的各种方法,包括:

  • add(E e):在列表的末尾添加一个元素。
  • add(int index, E element):在指定位置添加一个元素。
  • remove(int index):删除指定位置的元素。
  • set(int index, E element):修改指定位置的元素。
  • get(int index):获取指定位置的元素。
  • size():获取列表的大小。
  • contains(Object o):判断列表中是否包含指定元素。
  • indexOf(Object o):获取指定元素在列表中的索引。
  • isEmpty():判断列表是否为空。
  • clear():清空列表。

# List接口的实现类

List接口有很多实现类,常用的有:

  • ArrayList:ArrayList是List接口的主要实现类,它是一个动态数组,可以自动扩容。
  • LinkedList:LinkedList是List接口的另一个实现类,它是一个双向链表,可以快速地插入、删除元素。
  • Vector:Vector是ArrayList的线程安全版本,它是List接口的古老实现类。
  • Stack:Stack是Vector的子类,它是一个栈,可以模拟堆栈的操作。

# 代码示例

import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

public class ListExample {
    public static void main(String[] args) {
        // 创建ArrayList
        List<String> list = new ArrayList<>();
        // 添加元素
        list.add("apple");
        list.add("banana");
        list.add("orange");
        list.add("grape");
        // 遍历元素
        for (String fruit : list) {
            System.out.println(fruit);
        }
        // 遍历元素(索引)
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        // 遍历元素(迭代器)
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        // 删除元素
        list.remove(1);
        // 修改元素
        list.set(2, "pear");
        // 判断元素是否存在
        System.out.println(list.contains("banana"));
        // 获取元素索引
        System.out.println(list.indexOf("orange"));
        // 清空列表
        list.clear();
    }
}
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

# Set接口

Set接口是Java集合框架中另一个常用的接口,它代表一个无序的集合,元素不可重复。Set接口提供了对元素进行增删查的各种方法,包括:

  • add(E e):在集合中添加一个元素。
  • remove(E e):从集合中删除一个元素。
  • contains(Object o):判断集合中是否包含指定元素。
  • size():获取集合的大小。
  • isEmpty():判断集合是否为空。
  • clear():清空集合。

# Set接口的实现类

Set接口有很多实现类,常用的有:

  • HashSet:HashSet是Set接口的主要实现类,它是一个哈希表,可以快速地查找元素。
  • LinkedHashSet:LinkedHashSet是HashSet的子类,它是一个有序的哈希表,可以快速地查找元素。
  • TreeSet:TreeSet是SortedSet接口的主要实现类,它是一个有序的集合,可以快速地查找元素。

# 代码示例

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        // 创建HashSet
        Set<String> set = new HashSet<>();
        // 添加元素
        set.add("apple");
        set.add("banana");
        set.add("orange");
        set.add("grape");
        // 遍历元素
        for (String fruit : set) {
            System.out.println(fruit);
        }
        // 删除元素
        set.remove("banana");
        // 判断元素是否存在
        System.out.println(set.contains("orange"));
        // 清空集合
        set.clear();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# Map接口

Map接口是Java集合框架中最复杂的接口,它代表一个键值对的集合,键不可重复。Map接口提供了对键值对进行增删查的各种方法,包括:

  • put(K key, V value):添加一个键值对。
  • remove(K key):删除指定键的键值对。
  • get(K key):获取指定键的键值对。
  • containsKey(Object key):判断是否包含指定键。
  • containsValue(Object value):判断是否包含指定值。
  • size():获取映射的大小。
  • isEmpty():判断映射是否为空。
  • clear():清空映射。
  • keySet():获取映射中的所有键。
  • values():获取映射中的所有值。
  • entrySet():获取映射中的所有键值对。
  • equals(Object obj):判断两个映射是否相等。
  • hashCode():获取映射的哈希值。
  • toString():获取映射的字符串表示。
  • clone():复制映射。
  • putAll(Map<? extends K,? extends V> m):将指定映射中的所有键值对添加到当前映射中。
  • replace(K key, V value):替换指定键的键值对。
  • replace(K key, V oldValue, V newValue):替换指定键的键值对,并返回旧值。
  • replaceAll(BiFunction<? super K,? super V,? extends V> function):使用指定的函数替换映射中的所有键值对。

# Map接口的实现类

Map接口有很多实现类,常用的有:

  • HashMap:HashMap是Map接口的主要实现类,它是一个哈希表,可以快速地查找键值对。
  • LinkedHashMap: LinkedHashMap是HashMap的子类,它是一个有序的哈希表,可以快速地查找键值对。
  • TreeMap:TreeMap是SortedMap接口的主要实现类,它是一个有序的映射,可以快速地查找键值对。
  • ConcurrentHashMap:ConcurrentHashMap是HashMap的线程安全版本,它是一个线程安全的哈希表,可以快速地查找键值对。

# 代码示例

import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        // 创建HashMap
        Map<String, Integer> map = new HashMap<>();
        // 添加键值对
        map.put("apple", 1);
        map.put("banana", 2);
        map.put("orange", 3);
        map.put("grape", 4);
        // 遍历键值对
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
        // 删除键值对
        map.remove("banana");
        // 获取键值对
        System.out.println(map.get("orange"));
        // 判断键是否存在
        System.out.println(map.containsKey("grape"));
        // 判断值是否存在
        System.out.println(map.containsValue(3));
        // 清空映射
        map.clear();
    }
}
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
最后更新时间: 2024/12/26, 17:56:54
Java字符串
Java多线程编程

← Java字符串 Java多线程编程→

最近更新
01
SuperBuilder
12-29
02
30岁我该怎么办
12-29
03
关于存钱
12-29
更多文章>
Theme by Vdoing | Copyright © 2021-2025 Mr.Fire | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式