您好,我是湘王,這是我的頭條号「湘王說」。值此新春佳節,我給您拜年啦~祝您在新的一年中所求皆所願,所行皆坦途,展宏“兔”,有錢“兔”,多喜樂,常安甯!
雖然Apache Commons提供了專門的Commons-Collections來封裝集合操作,但Google Guava更為強大,并且已經是事實上的集合操作擴充類了。這一點從mvnrepository.com上的引用資料(截止2023-01-27)就可以看出來:
guava 33,492 usages
commons-collections4 3,905 usages
commons-collections 6,355 usages
當然,也可以混用commons-collections4和guava。
引入依賴:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.0-jre</version>
</dependency>
Guava和Commons-Collections最大的不同應該是在建立集合這一塊了:
Guava擴充了集合的「類型」,它可以這麼做:
Guava也可以很友善地将集合轉換成String:
Guava用于過濾集合元素,操作起來也不麻煩:
Map集合的交、并、差:
Set集合的交、并、差:
最後,Guava基于Comparator實作了排序器Ordering,它可以用來為建構複雜的比較器,以完成集合排序的功能。先建立使用者實體類:
/**
* 使用者實體類
*
* @author 湘王
*/
public class User {
private String name;
private Integer age;
public User() {
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return name;
}
}
然後再基于Ordering<User>排序:
節日期間,您仍然可以随時咨詢技術、産品、營運和管理相關問題,請關注後留言。歡迎騷擾,不勝榮幸~再次祝您兔年吉祥,萬事勝意!