Discuss / Java / 最优解

最优解

Topic source

大哥

#1 Created at ... [Delete] [Delete and Lock User]
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);    }}protected static List<Message> process(List<Message> received) {    Set<Message> messageSet = new TreeSet<>(new Comparator<Message>() {        public int compare(Message m1, Message m2) {            if (m1.seq == m2.seq)                return 0;            return m1.seq > m2.seq ? 1 : -1;        }    });    messageSet.addAll(received);    return new ArrayList<Message>(messageSet);}

大哥

#2 Created at ... [Delete] [Delete and Lock User]

代码怎样格式化的呢?

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);    
    }

}

protected static List<Message> process(List<Message> received) {

    Set<Message> messageSet = new TreeSet<>(new Comparator<Message>() {

        public int compare(Message m1, Message m2) {

            if (m1.seq == m2.seq)
                return 0;  
          
          return m1.seq > m2.seq ? 1 : -1;        
        }

    });    
    
    messageSet.addAll(received);    
    
    return new ArrayList<Message>(messageSet);

}

Loading...

#3 Created at ... [Delete] [Delete and Lock User]

为什么只传入一个Comparator对象。就已经实现去重了呢?这个不是用来保证顺序的吗

Joker.fu_95

#4 Created at ... [Delete] [Delete and Lock User]

因为要保证顺序,先排个序,然后把元素添加到Set集合中,重复的添加不了(也就是去重)


  • 1

Reply