我有以下java对象
Obj:
----
String id;
List<A>;
A:
--
String A_ID;
String A_PROPERTY;
我正在寻找的是能够搜索给定的对象。例如:在A.A_ID = 123
的列表中搜索我需要动态传递
A_ID = 123
它会给我
A_Property
我知道我可以通过迭代器搜索列表,但是那里有框架可以让你这样做吗?
感谢
答案 0 :(得分:2)
lambdaj是一个非常好的Java 5库。
例如:
Person me = new Person("Mario", "Fusco", 35);
Person luca = new Person("Luca", "Marrocco", 29);
Person biagio = new Person("Biagio", "Beatrice", 39);
Person celestino = new Person("Celestino", "Bellone", 29);
List<Person> people = asList(me, luca, biagio, celestino);
可以过滤使用以下过滤器的超过30年的过滤器:
List<Person> over30 = filter(having(on(Person.class).getAge(), greaterThan(30)), people);
答案 1 :(得分:0)
像Quaere之类的东西。从他们的网站:
Quaere是一个开源的,可扩展的框架,它为Java应用程序添加了一个让人想起SQL的查询语法。 Quaere允许您使用通用的,富有表现力的语法对多个集合和其他可查询资源进行过滤,枚举和创建投影。
答案 2 :(得分:0)
为什么需要一个框架?怎么样
public String lookupPropertyById(String id)
{
for (A a : myList)
{
if (id.equals(a.id))
return a.property;
}
return null; // not found
}
答案 3 :(得分:0)
Hashmap如果您只搜索每个输入对象具有相同类型的一个属性。例如,一个字符串。 对象1具有键的字符串“Obj1”,第二个对象具有字符串“Test2” 为了钥匙。当您使用带参数“Obj1”的get方法时,它将返回第一个对象。 附:读“你的伪代码”真的很难。
答案 4 :(得分:-1)
使用hashmap。
Map<String,A> map = new HashMap<String,A>();
A a = new A();
a.id = "123";
a.property="Hello there!";
map.put( a.id , a );
信
map.get( "123"); // would return the instance of A and then a.property will return "Hello there!"