java.util

java.util 包是 Java 标准库中一个非常核心的包,提供了许多实用的类和接口,用于处理集合数据结构、日期时间、随机数、工具操作等。以下是对 java.util 包的完整介绍:

1. 集合框架 (Collections Framework)

集合框架是 java.util 包中最重要的部分,提供了多种数据结构和算法,用于存储、操作和处理数据。主要包含以下接口和类:

核心接口
  • Collection: 所有集合类的根接口,定义了集合的基本操作,如添加、删除、包含等。Collection 接口没有直接实现,它的子接口 ListSet 和 Queue 实现了具体的集合类型。

  • List: 表示有序的集合,可以包含重复的元素。常用实现类有:

    • ArrayList: 基于动态数组实现的列表,支持快速随机访问,但在插入和删除操作上较慢。
    • LinkedList: 基于双向链表实现的列表,支持快速插入和删除,但在随机访问上较慢。
  • Set: 表示不允许重复元素的集合。常用实现类有:

    • HashSet: 基于哈希表实现的集合,元素没有顺序,提供高效的查找、添加和删除操作。
    • LinkedHashSet: 继承自 HashSet,保持插入顺序。
    • TreeSet: 基于红黑树实现的集合,元素按照自然顺序或指定比较器排序。
  • Queue: 表示先进先出的队列。常用实现类有:

    • LinkedList: 实现了 Queue 接口,支持队列操作。
    • PriorityQueue: 基于优先级堆实现的队列,元素按照优先级顺序排序。
  • Map: 用于存储键值对的集合。主要实现类有:

    • HashMap: 基于哈希表实现的映射,允许 null 键和 null 值,键值对没有顺序。
    • LinkedHashMap: 继承自 HashMap,保持插入顺序。
    • TreeMap: 基于红黑树实现的映射,键按照自然顺序或指定比较器排序。
辅助类
  • Collections: 提供了对集合进行操作的静态方法,如排序、查找、同步等。常用方法包括 sort()shuffle()reverse()synchronizedList() 等。

  • Arrays: 提供了对数组进行操作的静态方法,如排序、搜索、转换等。常用方法包括 sort()binarySearch()asList() 等。

2. 日期和时间处理

  • Date: 表示一个特定的时间点,包含年月日时分秒等信息。Date 类设计不够灵活,已被新的日期时间 API 所取代。

  • Calendar: 用于处理日期和时间,提供了对日期的各种操作,如加减日期、获取日期组件等。Calendar 是一个抽象类,有多个实现类,如 GregorianCalendar

  • GregorianCalendarCalendar 的一个子类,表示公历的日期和时间,支持对日期进行各种操作。

  • TimeZone: 表示时区,用于处理不同地区的时间。例如,TimeZone.getTimeZone("GMT") 可以获取格林威治标准时间的时区。

3. 并发工具

  • Timer: 用于安排任务的执行,如定时任务和周期性任务。Timer 是一个老旧的类,现代 Java 推荐使用 ScheduledExecutorService 替代。

  • TimerTask: 表示一个可由 Timer 执行的任务,用于定时执行代码。

4. 随机数生成

  • Random: 提供伪随机数生成器,可以生成各种类型的随机数,包括整数、浮点数、布尔值等。例如,new Random().nextInt(100) 可以生成 0 到 99 的随机整数。

5. 其他实用类

  • Properties: 扩展自 Hashtable,用于存储和操作键值对的集合,通常用于读取和写入配置文件。例如,Properties 可以从 .properties 文件中加载配置信息。

  • StringTokenizer: 用于分割字符串,旧版的字符串分割工具,现代 Java 推荐使用 String.split() 方法。

  • UUID: 提供生成唯一标识符的功能,常用于生成唯一的 ID。

示例代码

使用 ArrayList 和 HashMap
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UtilExample {
    public static void main(String[] args) {
        // 使用 ArrayList
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");
        System.out.println("List: " + list);

        // 使用 HashMap
        Map<String, Integer> map = new HashMap<>();
        map.put("Alice", 30);
        map.put("Bob", 25);
        map.put("Charlie", 35);
        System.out.println("Map: " + map);
    }
}

使用 Collections 类
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Banana");
        list.add("Apple");
        list.add("Cherry");

        // 排序
        Collections.sort(list);
        System.out.println("Sorted List: " + list);

        // 打乱顺序
        Collections.shuffle(list);
        System.out.println("Shuffled List: " + list);
    }
}

使用 Random 类
import java.util.Random;

public class RandomExample {
    public static void main(String[] args) {
        Random random = new Random();
        int randomInt = random.nextInt(100); // 生成 0 到 99 的随机整数
        double randomDouble = random.nextDouble(); // 生成 0.0 到 1.0 的随机浮点数
        boolean randomBoolean = random.nextBoolean(); // 生成随机布尔值

        System.out.println("Random Integer: " + randomInt);
        System.out.println("Random Double: " + randomDouble);
        System.out.println("Random Boolean: " + randomBoolean);
    }
}

总结

java.util 包在 Java 编程中扮演了重要角色,提供了丰富的功能和灵活的工具,涵盖了集合框架、日期时间处理、并发工具、随机数生成等多个方面。掌握这些类和接口的使用,可以大大提高 Java 编程的效率和质量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值