list 类型转换 以及其他应用

类型转换一般方法 

//List<Integer>转List<String>
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
List<String> strings = Lists.transform(list, new Function<Integer, String>() {
@Override
public String apply(@Nullable Integer integer) {
return integer.toString();
}
});
System.out.println(strings.toString());

 List<Integer>转List<String>

List<Integer> aa = new ArrayList<>();
aa.add(11);
aa.add(22);
//List<Integer>转List<Integer>
List<String> a = aa.stream().map(String::valueOf).collect(Collectors.toList());

 List<String>转List<Integer>

List<String> aa = new ArrayList<>();
aa.add("11");
aa.add("22");
//List<String>转List<Integer>
List<Integer> a = aa.stream().map(Integer::valueOf).collect(Collectors.toList());

 List集合的排序

//list集合的排序

简单方法:
Collections.sort(list); //从小到大
Collections.reverse(list);//顺序颠倒
若从大到小排序,将两者结合使用


//将userList依照年龄从小到大排序
userList.sort(Comparator.comparing(User::getAge));
//将userList依照年龄从大到小排序
userList.sort(Comparator.comparing(User::getAge).reversed());  

//或者以下
Collections.sort(userList, new Comparator<User>(){
			@Override
			public int compare(User a, User b) {
                //将userList依照年龄从小到大
			return a.getAge().compareTo(b.getAge());
                //将userList依照年龄从大到小
			//return b.getAge().compareTo(a.getAge());
			}
		});

取出一组对象的某个属性组成一个新集合   

//将User的age属性组成新集合
List<Integer> ages=userList.stream().map(User::getAge).collect(Collectors.toList());
//或者
List<String> nameList = userList.stream().map(s -> s.getName()).collect(Collectors.toList());

List<String> namelist = list.stream().map(s -> s.getName().replace("-", "")).collect(Collectors.toList());
        

 根据某个属性添加条件过滤数据

public static void main(String[] args) {
List<Integer> aa = new ArrayList<>();
aa.add(110);
aa.add(111);
aa.add(112);
aa.add(113);
//过滤条件是大于等于111
List<Integer> list = aa.stream().filter(a -> a >= (111)).collect(Collectors.toList());
System.out.println(list);     //结果list 包含111,112,113



List<String> aa1 = new ArrayList<>();
aa1.add("110");
aa1.add("111");
aa1.add("112");
aa1.add("113");
//过滤条件是不等于"111"
List<String> list1 = aa1.stream().filter(a -> !a.equals("111")).collect(Collectors.toList());
System.out.println(list1);   //结果包含"110","112","113"
}


List<User> userlist= new ArrayList<>();
//过滤条件是用户年龄不小于20
List<User> list = userlist.stream().filter(u -> u.getAge() >= 20).collect(Collectors.toList());
//过滤条件是 10到20 之间
userlist.stream().filter(u -> u.getAge() >= 10 && u.getAge() < 20).collect(Collectors.toList());

判断一组对象里面有没有属性值是某个值 

//判断集合中是否有叫"小明"的用户
List<User> userList =new ArrayList<>();
boolean aa= userList.stream().anyMatch(u -> "小明".equals(u.getName()));

根据某属性分组 

//userlist根据年龄分组
List<User> userlist = new ArrayList<>();
Map<Integer, List<User>> collect = userlist.stream().collect(Collectors.groupingBy(User::getAge));

集合中的某属性统一赋值

//集合中的某属性统一赋值  (userlist 集合中的age统一设置为18)
List<User> userlist = new ArrayList<>(); 
userlist.stream().forEach(u -> u.setAge(18));


List<String> list = stringList.stream().map(s -> s.replace("-", "")).collect(Collectors.toList());

list的其他应用:https://pingzhengguo.blog.csdn.net/article/details/86540899(list的最大,最小,求和,平均)
                        https://pingzhengguo.blog.csdn.net/article/details/86571528 (去重和提取重复元素)
                        https://pingzhengguo.blog.csdn.net/article/details/88990352(list集合的分页问题) 
                       https://pingzhengguo.blog.csdn.net/article/details/90484690(list和树状间的转换)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值