gpt4 book ai didi

java - 如何检查两个对象是否包含相同的单词(无论顺序如何)?

转载 作者:行者123 更新时间:2023-12-02 01:46:33 24 4
gpt4 key购买 nike

所以我有两个对象,names1和names2,它们只是用户选择输入的名称数组。我想创建一个代码来检查两个对象是否包含相同的单词,无论顺序如何。喜欢

Enter names ( n to stop):
John
Charles
n

Enter names (n to stop):
Charles
John

true

最佳答案

将列表转换为字符串并比较字符串并不是一个好方法。如果名称中包含空格、逗号或括号,您可能会遇到麻烦。最好保持字符串不同并按原样使用它们。

每当您想要存储一堆项目并且项目的顺序并不重要时,您应该考虑“设置”而不是“列表”。集合是类似于列表的集合,但集合不保留顺序。

Set<String> names;

最棒的是您不需要 Name根本没有课。一个Set<String>完全符合您想要对自定义Name执行的操作类,而您根本不必编写任何代码。您可以将名称添加到集合中,并且可以将集合与 equals() 进行比较开箱即用。

public static boolean sameCoins(Set<String> n1, Set<String> n2) {
return n1.equals(n2);
}

最常见的混凝土Set实现是 HashSet :

Set<String> names = new HashSet<>();

哈希集快速且高效,但它有一个显着的缺点:它不按顺序存储元素。如果打印出哈希集中的元素,它们看起来有点随机。它们不是像列表一样插入的顺序,也不是按字母顺序排列。如果这很重要,您可以切换到 LinkedHashSet (保留插入顺序)或 TreeSet (对项目进行排序)。

关于java - 如何检查两个对象是否包含相同的单词(无论顺序如何)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53623578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com