如何使用lambdaj过滤表?
给出下表:
id name age male salary 1 tom 22 y 3k 2 nancy 24 n 3.5k 3 jack 22 y 2k 4 jmme 29 y 4k
If I applied the filter:
age >= 22 && salary > 3k
那么我会得到:
2 nancy 24 n 3.5k 4 jmme 29 y 4k
As you know, I cannot create a domain class for it, which prevents me from using the following syntax:
filter(having(on(Person.class).getAge(),greaterThan(22)), myManList);
最佳答案
/ **
*
*序号年份地区GDP
* 1 2011北京1233
* 2 2010天津2412
* 3 2012上海1939
* 4 2009年深圳1389
* 5 2013重庆1492
* * /
表aTable = HashBasedTable.create();
aTable.put(“ 1”,“ id”,“ 1”);
aTable.put(“ 1”,“年份”,“ 2011”);
aTable.put(“ 1”,“地区”,“北京”);
aTable.put(“ 1”,“ GDP”,“ 1233”);
aTable.put(“ 2”,“ id”,“ 2”);
aTable.put(“ 2”,“年份”,“ 2010”);
aTable.put(“ 2”,“地区”,“天津”);
aTable.put(“ 2”,“ GDP”,“ 2412”);
aTable.put(“ 3”,“ id”,“ 3”);
aTable.put(“ 3”,“年份”,“ 2012”);
aTable.put(“ 3”,“地区”,“上海”);
aTable.put(“ 3”,“ GDP”,“ 1939”);
aTable.put(“ 4”,“ id”,“ 4”);
aTable.put(“ 4”,“年份”,“ 2009”);
aTable.put(“ 4”,“地区”,“深圳”);
aTable.put(“ 4”,“ GDP”,“ 1389”);
aTable.put(“ 5”,“ id”,“ 5”);
aTable.put(“ 5”,“年份”,“ 2013”);
aTable.put(“ 5”,“地区”,“重庆”);
aTable.put(“ 5”,“ GDP”,“ 1492”);
列表> li =过滤器(
具有(on(Map.class).get(“年份”),isIn(Arrays.asList(“ 2009”,“ 2011”))))
.and(having(on(Map.class).get(“ region”),isIn(Arrays.asList(“深圳”)))))
,aTable.rowMap()。values());
System.out.println(li);