假设我有一个long
被调用X
和一个List<Long>
被调用foo
,其中包含X
许多元素中的一个非唯一元素。我需要应用什么方法来查找foo
与X
. 这foo
不一定是排序的(但如果有需要排序的特定方法,一个好的答案可能会假设这一点 - 我对排序和未排序的情况都感兴趣)。
例如,这可能是问题设置:
long X = 5L
List<Long> foo = new ArrayList<Long>();
foo.add(4L);
foo.add(5L);
foo.add(5L);
foo.add(6L);
foo.add(7L);
我希望该方法接受X
作为参数并返回包含索引1
和的列表(或其他对象) 2
,因为它们对应于X
within的位置foo
。
微不足道,
public static List<Long> locator(long target, List<Long> fooList) {
List<Long> output = new ArrayList<Long>();
for(int i = 0 ; i < foo.size() ; i++) {
if(foo.get(i) == target) {
output.add(i);
}
}
return output;
}
但我想要一种更快的方法,因为我的foo
方法非常长。