作业
Topic sourcepackage test.集合.使用EnumMap;import java.util.*;/** * @Author YCWB0265 * @create 2021/1/24 21:43 *//** * 在聊天软件中,发送方发送消息时,遇到网络超时后就会自动重发, * 因此,接收方可能会收到重复的消息,在显示给用户看的时候,需要首先去重 * 。请练习使用Set去除重复的消息: */public class 练习 { public static void main(String[] args) { List<Message> list = new ArrayList<>(); list.add(new Message(1, "Hello!")); list.add(new Message(2, "发工资了吗?")); list.add(new Message(2, "发工资了吗?")); list.add(new Message(3, "去哪吃饭?")); list.add(new Message(3, "去哪吃饭?")); list.add(new Message(4, "Bye")); List<Message> displayMessages = process(list); for (Message displayMessage : displayMessages) { System.out.println(displayMessage.text); } } /** * 1.重写Message类的equals()和hashCode()方法,确保去重set生效。 * 2.List转Set,Set转List */ private static List<Message> process(List<Message> list) { Set<Message> set = new HashSet<>(list); List<Message> objects1 = new ArrayList<>(set); return objects1; }}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 == null || getClass() != o.getClass()) { return false; } Message message = (Message) o; return sequence == message.sequence && Objects.equals(text, message.text); } @Override public int hashCode() { return Objects.hash(sequence, text); }}
- 1
用户ily8tu6igg