Discuss / Java / 两步

两步

Topic source

相心03

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

1. 如何从List转成Set,再从Set转成List

用idea的话他会提醒你怎么做...所以简单的就这

static List<Message> process(List<Message> received) {    // TODO: 按sequence去除重复消息    Set<Message> s = new HashSet<>(received);    return new ArrayList<>(s);}

2. Message这个类需要正确地放进去Set,就需要实现equals()和hashCode()

@Overridepublic boolean equals(Object o) {    if (o instanceof Message) {        Message m = (Message) o;        return this.sequence == m.sequence                && Objects.equals(this.text, m.text);    }    return false;}@Overridepublic int hashCode() {    int h = 0;    h = 31 * h + this.sequence;    h = 31 * h + this.text.hashCode();    return h;}

相心03

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

这tm的格式乱的...算了思路对了就行

深蓝738

#3 Created at ... [Delete] [Delete and Lock User]
@Overridepublic boolean equals(Object o) {    if (o instanceof Message) {        Message m = (Message) o;        return this.sequence == m.sequence                && Objects.equals(this.text, m.text);    }    return false;}@Overridepublic int hashCode() {    int h = 0;    h = 31 * h + this.sequence;    h = 31 * h + this.text.hashCode();    return h;}

深蓝738

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

卧槽,怎么会这样

韩子_V

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

这样是可以实现去重操作,但是没法保证发送顺序吧!


  • 1

Reply