Java进阶——常用工具类
- 手机
- 2025-09-16 13:18:01

日常开发中,Arrays、Collections 和 Objects 是非常实用的工具类,提供了丰富的功能,从而可以更高效地处理数组、集合和对象。本文将详细介绍这三个工具类的重要知识细节。
本文目录 一、 Arrays数组转集合并行排序优化Stream 支持 二、 Collections同步包装排序与查找 三、 Objects空安全比较参数校验空值链式处理 性能对比总结 一、 Arrays 数组转集合将数组转换为集合是一个常见的操作,但需要注意的是,Arrays.asList() 返回的 List 是固定大小的,不支持 add 和 remove 操作。
String[] skus = {"A001", "B002"}; List<String> skuList = Arrays.asList(skus); // 不支持 add/remove skuList.add("C003"); // 抛出 UnsupportedOperationException 并行排序优化当处理大量数据时,Arrays.parallelSort() 可以利用多核并行排序,比串行排序快 2 - 3 倍。
int[] orderAmounts = getLargeOrderData(); // 假设有10 万+数据 Arrays.parallelSort(orderAmounts); // 多核并行排序 Stream 支持Arrays.stream() 可以将数组转换为流,方便进行各种流操作。
// 统计订单数量 long bigOrders = Arrays.stream(orderAmounts) .filter(amount -> amount > 10000) .count(); 二、 Collections 同步包装Collections.synchronizedList() 可以创建线程安全的集合,但遍历时仍需手动同步。
// 创建线程安全的购物车 List<CartItem> cart = Collections.synchronizedList(new ArrayList<>()); synchronized(cart) { for (CartItem item : cart) { processItem(item); } } 排序与查找Collections.sort() 可以对集合进行排序,Collections.binarySearch() 可以进行二分查找,但二分查找前必须先排序。
// 按价格排序商品 List<Product> products = getProducts(); Collections.sort(products, Comparator paring(Product::getPrice)); // 二分查找 int index = Collections.binarySearch(products, targetProduct, priceComparator); 三、 Objects 空安全比较Objects.equals() 可以自动处理 null 值,避免 NullPointerException。
public boolean isSameUser(User u1, User u2) { return Objects.equals(u1.getUserId(), u2.getUserId()); // 自动处理 null 值 } 参数校验Objects.requireNonNull() 可以对参数进行非空校验,Objects.requireNonNullElse() 可以自定义空值异常消息。
public void processOrder(Order order) { Objects.requireNonNull(order, "订单不能为 null"); // 其他处理... } // 自定义空值异常消息 String address = Objects.requireNonNullElse( user.getAddress(), "默认地址" ); 空值链式处理Objects.requireNonNullElse() 可以进行多层空值防护。
// 获取用户所在城市(多层空值防护) String city = Objects.requireNonNullElse( user.getAddress(), new Address() ).getCity();以上只是总结了工具类经常使用的方法,类中还有更多使用方法,可以多看看哦。
性能对比 操作推荐方案避免方案原因空集合返回Collections.emptyList()new ArrayList<>(0)节省内存,语义明确数组转集合new ArrayList<>(Arrays.asList(arr))直接使用 Arrays.asList()避免固定大小限制深度哈希码计算Objects.hash(field1, field2, ...)手动拼接哈希码自动处理 null 和数组线程安全集合遍历手动 synchronized 块依赖 synchronizedXXX()防止并发修改异常 总结 Arrays:专注数组操作,注意 asList 的固定大小特性。Collections:提供集合工具方法,理解不可变/同步集合的局限。Objects:空值处理和参数校验,避免 NullPointerException。 ← 上一篇 Java进阶——Stream流以及常用方法详解 记得点赞、关注、收藏哦! 下一篇 Java进阶——注解一文全懂 →Java进阶——常用工具类由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Java进阶——常用工具类”
上一篇
git笔记
下一篇
Mysql死锁场景及解决方案