EXP List 转List
场景一 Object是已知对象,单纯去某一个成员变量为List<~>
public class Main {
public static void main(String[] args) {
List<Person> list = new ArrayList<>();
list.add(new Person("张三", 1));
list.add(new Person("李四", 2));
List<Long> ids = list.stream().map(Person::getId()).collect(Collectors.toList());
}
@Data
class Person {
private String name;
private Long id;
public Person(String name, String id) {
this.name = name;
this.id = id;
}
}
}
场景二 Object其实String,但是强转感觉很LOW
public class Main {
public static void main(String[] args) {
List<Object> list = new ArrayList<>();
list.add("A");
list.add("B");
List<String> collect = list.stream().map(String::valueOf()).collect(Collectors.toList());
}
}
List中使用stream() 实现大小写转换
场景一 Object其实是String
public class Main {
public static void main(String[] args) {
List<Object> list = new ArrayList<>();
list.add("A");
list.add("B");
List<String> collect = list.stream().map(item -> String.valueOf(item).toLowerCase(Locale.ROOT)).collect(Collectors.toList());
}
}
场景二 Object是对象
public class Main {
public static void main(String[] args) {
List<Person> list = new ArrayList<>();
list.add(new Person("A", 1));
list.add(new Person("B", 2));
List<String> names = list.stream().map(item -> item.getName().toLowerCase(Locale.ROOT)).collect(Collectors.toList());
}
@Data
class Person {
private String name;
private Long id;
public Person(String name, String id) {
this.name = name;
this.id = id;
}
}
}
List 转Map
List<User> users = new ArrayList<>();
Map<String, User> usersMap = users.stream().collect(Collectors.toMap(User::getId, Function.identity(), (key1, key2) -> key2));