java比较实用的工具类

1. Java自带工具方法

1.1 List集合拼接成以逗号分隔的字符串

List<String> list = Arrays.asList("a", "b", "c");  
// 第一种方法,可以用stream流  
String join = list.stream().collect(Collectors.joining(","));  
System.out.println(join); // 输出 a,b,c  
// 第二种方法,其实String也有join方法可以实现这个功能  
String join = String.join(",", list);  
System.out.println(join); // 输出 a,b,c  

1.2 比较两个对象是否相等

当我们用equals比较两个对象是否相等的时候,还需要对左边的对象进行判空,不然可能会报空指针异常,我们可以用java.util包下Objects封装好的比较是否相等的方法

Objects.equals(strA, strB);  

1.3 两个List集合取交集

List<String> list1 = new ArrayList<>();  
list1.add("a");  
list1.add("b");  
list1.add("c");  
List<String> list2 = new ArrayList<>();  
list2.add("a");  
list2.add("b");  
list2.add("d");  
list1.retainAll(list2);  
System.out.println(list1); // 输出[a, b]  

2.commons-collections 工具类库

Maven依赖是:

<dependency>  
    <groupId>org.apache.commons</groupId>  
    <artifactId>commons-collections4</artifactId>  
    <version>4.4</version>  
</dependency>  
//集合判空
list.isEmpty

list.isNotEmpty

// 两个集合取交集  
Collection<String> collection = CollectionUtils.retainAll(listA, listB);  
// 两个集合取并集  
Collection<String> collection = CollectionUtils.union(listA, listB);  
// 两个集合取差集  
Collection<String> collection = CollectionUtils.subtract(listA, listB); 

3. Google Guava 工具类库

Maven依赖:

<dependency>  
    <groupId>com.google.guava</groupId>  
    <artifactId>guava</artifactId>  
    <version>30.1.1-jre</version>  
</dependency>  

3.1Multimap 一个key可以映射多个value的HashMap

Multimap<String, Integer> map = ArrayListMultimap.create();  
map.put("key", 1);  
map.put("key", 2);  
Collection<Integer> values = map.get("key");  
System.out.println(map); // 输出 {"key":[1,2]}  

3.2 Table 一种有两个key的HashMap

// 一批用户,同时按年龄和性别分组  
Table<Integer, String, String> table = HashBasedTable.create();  
table.put(18, "男", "yideng");  
table.put(18, "女", "Lily");  
System.out.println(table.get(18, "男")); // 输出 yideng  
// 这其实是一个二维的Map,可以查看行数据  
Map<String, String> row = table.row(18);  
System.out.println(row); // 输出 {"男":"yideng","女":"Lily"}  
// 查看列数据  
Map<Integer, String> column = table.column("男");  
System.out.println(column); // 输出 {18:"yideng"}  

3.3 Multiset 一种用来计数的Set

Multiset<String> multiset = HashMultiset.create();  
multiset.add("apple");  
multiset.add("apple");  
multiset.add("orange");  
System.out.println(multiset.count("apple")); // 输出 2  
// 查看去重的元素  
Set<String> set = multiset.elementSet();  
System.out.println(set); // 输出 ["orange","apple"]  
// 还能查看没有去重的元素  
Iterator<String> iterator = multiset.iterator();  
while (iterator.hasNext()) {  
    System.out.println(iterator.next());  
}  
// 还能手动设置某个元素出现的次数  
multiset.setCount("apple", 5);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值