Discuss / Java / 作业: 顺序好像 反了。。。。

作业: 顺序好像 反了。。。。

Topic source

public class test {
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去除重复消息
TreeSet<Message> messageTreeSet = new TreeSet<>();
for (Message message : received) {
messageTreeSet.add(message);
}
List<Message> list = new ArrayList<>();
for (Message message : messageTreeSet) {
list.add(message);
}
return list;
}
}

class Message implements Comparable<Message> {
public final int sequence;
public final String text;

public Message(int sequence, String text) {
this.sequence = sequence;
this.text = text;
}

@Override
public int compareTo(Message message) {
return message.sequence - this.sequence;
}
}

idea  YYDS

天天教我写代码:

自己写的:

// TODO: 按sequence去除重复消息
TreeSet<Message> messageTreeSet = new TreeSet<>();
for (Message message : received) {
messageTreeSet.add(message);
}
List<Message> list = new ArrayList<>();
for (Message message : messageTreeSet) {
list.add(message);
}
return list;

根据idea 指引写的:

// TODO: 按sequence去除重复消息
TreeSet<Message> messageTreeSet = new TreeSet<>(received);
return new ArrayList<>(messageTreeSet);


  • 1

Reply