官方示例:官方示例扩展
jdk8 的List集合简单应用
1、简单使用
主要是排序、过滤、转换:
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("ADS");
list.add("BDSC");
list.add("C$#");
list.add("65D");
list.add("EB34");
//Java8 lambda遍历list
System.out.println("----------遍历所有项---------->");
list.forEach(c-> System.out.println(c));
System.out.println("----------查找相同所有项------>");
list.forEach(e->{
if("C$#".equals(e)){
System.out.println(e);
}
});
//先过滤
System.out.println("----------遍历过滤所有项------>");
list.stream().filter(s->s.contains("B")).forEach(c1-> System.out.println(c1));
//ID为key,转为Map
System.out.println("----------List->Map------>");
List<User> lists2 = new ArrayList<>();
User user1 = new User(1L, "张飞", 21);
User user2 = new User(2L, "李达", 27);
User user3 = new User(3L, "王六", 21);
lists2.add(user1);
lists2.add(user2);
lists2.add(user3);
Map<Long,User> userMap = lists2.stream().collect(Collectors.toMap(User::getId, a -> a,(k1, k2)->k1));
System.out.println(userMap);
System.out.println("----------分组------>");
Map<Integer, List<User>> collect = lists2.stream().collect(Collectors.groupingBy(c -> c.getAge()));
System.out.println(collect);
System.out.println("----------空值排序------>");
List<String> names2 = Arrays.asList("peter", null, "anna", "mike", "xenia");
names2.sort(Comparator.nullsLast(String::compareTo));
System.out.println(names2);
System.out.println("----------集合为空时判断并获取------>");
List<String> names3 = null;
Optional.ofNullable(names3).ifPresent(e -> e.sort(Comparator.reverseOrder()));
System.out.println(names3);
Integer n = 3;
Optional.ofNullable(n).ifPresent(t -> t = 5);
System.out.println(n);
}
}
2、实体类
class User{
private long id;
private String name;
private int age;
public User(long id,String name,int age){
this.id = id;
this.name = name;
this.age = age;
}
setter/getter....
}
3、运行结果
----------遍历所有项---------->
----------遍历所有项---------->
ADS
BDSC
C$#
65D
EB34
----------查找相同所有项------>
C$#
----------遍历过滤所有项------>
BDSC
EB34
----------List->Map------>
{1=User{id=1, name='张飞', age=21}, 2=User{id=2, name='李达', age=27}, 3=User{id=3, name='王六', age=21}}
----------分组------>
{21=[User{id=1, name='张飞', age=21}, User{id=3, name='王六', age=21}], 27=[User{id=2, name='李达', age=27}]}
----------空值排序------>
[anna, mike, peter, xenia, null]
----------集合为空时判断并获取------>
null
3