学以致用
Topic sourcepublic class Code01 {
public static void main(String[] args) {
List<Message> received = Arrays.asList(
new Message(1, "Hello!"),
new Message(2, "发工资了吗?"),
new Message(2, "发工资了吗?"),
new Message(3, "去哪吃饭?"),
new Message(3, "去哪吃饭?"),
new Message(4, "Bye")
);
List<Message> displayMessages = process(received);
for (Message message : displayMessages) {
System.out.println(message.text);
}
}
static List<Message> process(List<Message> received) {
/**
* 使用 TreeSet 有两个功能
* 1. Set 相同的元素就不会被添加到Set中,起到了去重的作用
* 2. TreeSet相比HashSet还具有排序的作用
* 3. 上面的两个共功能只需要重写Comparator.compare方法即可
*/
TreeSet<Message> messages = new TreeSet<>((o1, o2) -> o1.sequence - o2.sequence);
messages.addAll(received);
return new ArrayList<>(messages);
}
}
class Message {
public final int sequence;
public final String text;
public Message(int sequence, String text) {
this.sequence = sequence;
this.text = text;
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof Message){
Message message = (Message) obj;
return message.sequence == this.sequence &&
Objects.equals(message.text, this.text);
}
return false;
}
}
- 1
a学习苦学习累68604