1

如何使用lambdaj过滤表?

给定下表:

身份证姓名年龄男性工资
1 汤姆 22 和 3k
2 南希 24 n 3.5k
3 插孔 22 和 2k
4 jmme 29 和 4k

如果我应用了过滤器:

age >= 22 && salary > 3k

那么我会得到:

2 南希 24 n 3.5k
4 jmme 29 和 4k

如您所知,我无法为其创建域类,这使我无法使用以下语法:

filter(having(on(Person.class).getAge(),greaterThan(22)), myManList);
4

1 回答 1

1
   
/**
         *
         * 序号 年份 地区 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.("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 = 过滤器(
                    have(on(Map).get("年份.class"),isIn(Array.asList("2009","2011"))
                    .and(have(on(Map.class).get("地区"),isIn(Arrays.asList("深圳"))))
                            ,aTable.rowMap().values());
         System.out.println(li);
于 2011-11-24T07:49:09.493 回答