导入 java.util 的基础概念
在 Java 编程中,java.util 是最常用的包之一,它提供了大量实用的工具类和数据结构,如集合框架、日期时间处理、正则表达式等,要使用 java.util 中的类,首先需要掌握如何正确导入这些类,导入是 Java 编译器在编译时查找类定义的过程,通过 import 语句可以简化类的引用,避免每次使用时都写完整的包名。

import 语句的基本语法
import 语句用于告诉编译器哪个类或整个包中的类需要被加载,其基本语法分为两种形式:
-
导入单个类
当只需要使用java.util包中的特定类时,可以使用以下语法:import java.util.ArrayList; import java.util.HashMap;
这种方式明确指定了要导入的类,代码可读性更高,且能避免不必要的类加载。
-
导入整个包
如果需要频繁使用java.util包中的多个类,可以使用通配符 导入整个包:import java.util.*;
这种方式会导入包中的所有公共类,但不会导入子包中的类,需要注意的是,过度使用通配符可能导致命名冲突,因此建议仅在明确需要多个类时使用。
常见 java.util 类的导入示例
java.util 包中包含许多核心类,以下是一些常用类的导入及使用示例:

集合框架相关类
集合框架是 java.util 的重要组成部分,包括 List、Set、Map 等接口及其实现类。
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names);
}
}
日期时间类
Java 8 之前的日期时间处理主要依赖 java.util 包中的 Date 和 Calendar 类:
import java.util.Date;
import java.util.Calendar;
public class DateExample {
public static void main(String[] args) {
Date now = new Date();
System.out.println("当前时间: " + now);
Calendar calendar = Calendar.getInstance();
System.out.println("年份: " + calendar.get(Calendar.YEAR));
}
}
工具类
java.util 还提供了许多实用工具类,如 Arrays、Collections 等:
import java.util.Arrays;
import java.util.Collections;
public class UtilityExample {
public static void main(String[] args) {
int[] numbers = {3, 1, 2};
Arrays.sort(numbers);
System.out.println("排序后数组: " + Arrays.toString(numbers));
List<String> fruits = Arrays.asList("Apple", "Banana");
Collections.shuffle(fruits);
System.out.println("随机排序后: " + fruits);
}
}
导入时的注意事项
-
避免命名冲突
如果两个不同包的类具有相同的名称,直接导入可能会导致编译错误。java.util.List和java.awt.List名称相同,若同时导入需使用全限定名:import java.util.List; import java.awt.List; // 冲突!
解决方法:
import java.util.*; import java.awt.*; // 使用时指定全限定名 java.util.List<String> list = new java.util.ArrayList<>();
-
静态导入
对于工具类中的静态方法(如Collections.sort()),可以使用静态导入简化代码:
import static java.util.Collections.sort; import java.util.List; import java.util.ArrayList; public class StaticImportExample { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(3, 1, 2)); sort(numbers); // 无需写 Collections.sort System.out.println(numbers); } } -
性能影响
虽然通配符导入(import java.util.*)看起来会加载所有类,但实际编译后只会用到代码中明确引用的类,因此不会对运行时性能产生负面影响。
最佳实践
-
按需导入
优先导入单个类,避免使用通配符导入,以提高代码可读性并减少潜在冲突。 -
全限定名的使用
在存在命名冲突或代码可读性要求高的场景下,直接使用全限定名(如java.util.ArrayList)是更安全的选择。 -
静态导入的谨慎使用
静态导入虽然能简化代码,但过度使用可能导致代码难以维护,建议仅在频繁使用静态方法时采用。
掌握 java.util 包的导入是 Java 编程的基础技能,通过合理使用 import 语句,可以高效地利用 java.util 提供的丰富功能,同时避免常见的命名冲突和代码可读性问题,无论是导入单个类、整个包,还是使用静态导入,都应根据实际场景选择最合适的方式,以确保代码的简洁性和可维护性。
















