test
Topic source这样应该符合要求
import java.util.*;public class Main { public static void main(String[] args) { List<Message> received = List.of( 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) { Set<Message> set = new TreeSet<>(new Comparator<Message>() { @Override public int compare(Message o1, Message o2) { return Integer.compare(o1.sequence, o2.sequence); } }); set.addAll(received); return new ArrayList<Message>(set); }}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 o) { if (this == o) return true; if (!(o instanceof Message)) return false; Message message = (Message) o; return sequence == message.sequence; // 按sequence去重 } @Override public int hashCode() { return Objects.hash(sequence, text); } @Override public String toString() { return "Message{" + "sequence=" + sequence + ", text='" + text + '\'' + '}'; }}
- 1
曦煜墨白
public class Main {
public static void main(String[] args) {
List<Message> received = List.of(
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) {
// TODO: 按sequence去除重复消息
Set<Message> set = new HashSet<>(received);
return new ArrayList<>(set);
}
}
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 o) {
if(o instanceof Message){
Message m = (Message) o;
return Objects.equals(this.sequence,m.sequence);
}
return false;
}
@Override
public int hashCode() {
return Objects.hash(sequence);
}
}