我下面有一段代码
Comparator<StudentDTO> compareNames = Comparator.comparing(StudentDTO::getName);
PriorityQueue<StudentDTO> h = new PriorityQueue<>(compareNames);
h.offer(new StudentDTO(5,"c"));
h.offer(new StudentDTO(2,"b"));
h.offer(new StudentDTO(8,"z"));
h.offer(new StudentDTO(1,"a"));
System.out.println(h);
我得到的输出如下:
[StudentDTO [rollNo=1,Name=a],StudentDTO [rollNo=2,Name=b],StudentDTO [rollNo=8,Name=z],StudentDTO [rollNo=5,Name=c]]
不确定为什么Name = z在Name = c之前出现。 编辑:我正在使用Java 8。