java有没有一种方法可以对数据集使用compareTo()方法,而不必遍历数据集的每个元素?
我想知道是否有一种方法可以使用compareTo(),而不必遍历数据集中的每个字符串元素,我很确定这在使用数组时是不可能的,但是是否有一种数据结构能够以这种方式工作
请参见下面的示例以获得更清晰的解释:
public static int PronounDetector(String [] pronouns)
{
String [] you = {"you", "You"};
for (int i = 0; i < pronouns.length; i++)
{
if (pronouns[i].compareTo(you) == 0)
//Is there a way for compareTo to run through
//the entire String data set without having to make
//it iterate through each element using a for loop?
{
return 2;
}
}
}
编辑:我知道无论程序在数据集中迭代什么,(否则它将如何找到匹配项?),我只是想看看是否有一种方法可以做到这一点,而不必在for循环中实际使用物理类型
# 1 楼答案
是的,您不必“双重迭代”(即使这正是在后台发生的事情),您可以将数组
you
转换为字符串,并使用contains()
进行搜索:# 2 楼答案
如果要在搜索处理过程中跳过某些数据,则必须满足两个条件
通过对数组进行排序,然后从中间进行比较,可以改进搜索。 然后,在每一步中,你们将把必须比较的元素减少一半
可以使用TreeMap来代替数组,它将数据存储在树结构中以获得相同的结果
代码示例: