Discuss / Java / 记录

记录

Topic source
import java.util.*;

public class testSet {

    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 TreeSet<>();
        for (Message rec : received) {
            set.add(rec);
        }
        List<Message> list = new ArrayList<>();
        for (Message message : set) {
            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) {
        // TODO Auto-generated method stub
        return Integer.compare(this.sequence, message.sequence);
    }
}


  • 1

Reply