如何使用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);

10-07 15:50