gpt4 book ai didi

java - 在 Java 上搜索 Vector 内的属性

转载 作者:行者123 更新时间:2023-11-30 06:39:22 24 4
gpt4 key购买 nike

我有一个 Vector 对象,必须在内部搜索这些对象的随机属性(例如,一个 Plane 类,一个 Vector 包含 Plane;有时我必须搜索 destination,而其他人则搜索 pilotName)。

我知道我可以使用 Iterator 遍历 Vector,但我一直不知道如何更改 String 和目的。我想到了使用 switch,但换一种说法会很酷。


更新 1:

我写的代码是这样的(Java n00b 警告!):

public int search(String whatSearch, String query){  
int place = -1;
boolean found = false;
for ( Iterator<Plane> iteraPlane = this.planes.iterator(); iteraPlane.hasNext() && found == false; ) {
Plane temp = (Plane) iteraPlane.next();
/* Here is where I have to search for one of many attributes (delimited by whatSearch */
}
return place;
}

看来我必须坚持线性搜索(这是我能够支付的价格)。不管怎样,我在想 Java 是否有类似可变变量名的东西(哎哟!)

最佳答案

我假设您的问题是您想要一种方法来根据集合类型的某些属性 搜索结果。 Java 在这方面很薄弱,因为它最好用一种有闭包的语言来表达。你需要的是这样的:

public interface Predicate<T> {
public boolean evaluate(T t);
}

然后您的搜索方法如下所示:

public static <T> T findFirst(List<T> l, Predicate<T> p) { //use List, not Vector
for (T t : l) { if (p.evaluate(t)) return t; }
return null;
}

然后任何人都可以使用这种通用 搜索方法。例如,要在 Integer vector 中搜索数字:

List<Integer> is = ...
findFirst(is, new Predicate<Integer> {
public boolean evaluate(Integer i) { return i % 2 == 0; }
});

但是您可以以任何您想要的方式实现谓词;任意搜索

关于java - 在 Java 上搜索 Vector 内的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1055714/

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