TreeSet::new là tham chiếu đến constructor. Nhưng em không hiểu cụ thể nó như thế nào? ai biết có thể giải thích hộ em được ko??
cụ thể là trong đoạn code này:
public class Main {
private int anInt;
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
try (
BufferedReader bufferedInputStream =
new BufferedReader(
new InputStreamReader(
Main.class.getResourceAsStream("yep.txt")));
Stream<String> yep = bufferedInputStream.lines();
)
{
System.out.println(Main.class.getResource("yep.txt").toString());
yep.map(line -> {
String[] s = line.split(" ");
Person p = new Person(s[0].trim(), Integer.parseInt(s[1]));
persons.add(p);
return p;
}).forEach(System.out::println);
Map<Integer, Set<String>> map =
persons.stream().
collect(Collectors.groupingBy(
Person::getAge, Collectors.mapping(
Person::getName, Collectors.toCollection(TreeSet::new))));
System.out.println(map);
}catch(Exception e) {
}
}
}
class Person {
String name;
int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
Nội dung của file:
hoang 20
minh 17
toan 23
tuan 19
khang 55
Hoang 20
Minh 17
Toan 23
Tuan 19
Khang 55
kết quả:
file:/home/eli/IdeaProjects/Yep/out/production/HelloWorld/lambda/yep.txt
lambda.Person@7f63425a
lambda.Person@36d64342
lambda.Person@39ba5a14
lambda.Person@511baa65
lambda.Person@340f438e
lambda.Person@30c7da1e
lambda.Person@5b464ce8
lambda.Person@57829d67
lambda.Person@19dfb72a
lambda.Person@17c68925
{17=[Minh, minh], 19=[Tuan, tuan], 20=[Hoang, hoang], 55=[Khang, khang], 23=[Toan, toan]}
. Trên đó có rất nhiều thứ bạn có thể vào tham khảo.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?