Lists、Sets、Maps和Collections2的使用

1、Lists

//Lists
System.out.println("### Lists ###");
ArrayList<String> arrayList = Lists.newArrayList();
arrayList.add("A");
arrayList.add("B");
arrayList.add("C");
System.out.println(arrayList);

LinkedList<String> linkedList = Lists.newLinkedList();
linkedList.add("A");
linkedList.add("B");
linkedList.add("C");
System.out.println(linkedList);

System.out.println(Lists.reverse(arrayList));   //翻转集合元素的顺序
System.out.println(Lists.reverse(linkedList));

System.out.println(Lists.partition(arrayList, 2)); //一个集合内再分成n个子集合

 

2、Sets

//Sets
System.out.println("### Sets ###");
HashSet<String> set1 = Sets.newHashSet();
set1.add("A");
set1.add("B");
set1.add("C");

LinkedHashSet<String> set2 = Sets.newLinkedHashSet();
set2.add("B");
set2.add("C");
set2.add("D");
set2.add("E");

//Sets.newTreeSet();
//Sets.newConcurrentHashSet();

System.out.println(Sets.union(set1, set2)); //返回两个集合的并集  >> [A, B, C, D, E]
System.out.println(Sets.difference(set1, set2)); //返回set1中不存在于set2的元素集合  >> [A]
System.out.println(Sets.intersection(set1, set2)); //返回两个集合的交集  >> [B, C]

Set<String> resultSet = Sets.filter(set2, new Predicate<String>() {
	@Override
	public boolean apply(String value) {
		return !"D".equals(value); //过滤掉值为D的元素  >> [B, C, E]
	}
});
System.out.println(resultSet);

 

3、Maps

//Maps
System.out.println("### Maps ###");
Maps.newHashMap();
Maps.newLinkedHashMap();
Maps.newTreeMap();
Maps.newConcurrentMap();

 

4、Collections2

//Collections2
System.out.println("### Collections2 ###");
Collection<String> linkedList2 = Collections2.filter(linkedList, new Predicate<String>() {
	@Override
	public boolean apply(String value) {
		return !"B".equals(value); //过滤器:过滤掉值为B的元素  >> [A, C]
	}
});
System.out.println(linkedList2);

Collection<String> linkedList3 = Collections2.transform(linkedList, new Function<String, String>() {
	@Override
	public String apply(String value) {
		return value + "_"; //转换器:元素值做特殊处理后返回  >> [A_, B_, C_]
	}
});
System.out.println(linkedList3);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值