1

lambdajを使用してテーブルをフィルタリングするにはどうすればよいですか?

次の表があるとします。

ID名年齢男性給与
1トム22年3k
2ナンシー24n3.5k
3ジャック22y2k
4 jmme 29 y 4k

フィルタを適用した場合:

age >= 22 && salary > 3k

それから私は得るでしょう:

2ナンシー24n3.5k
4 jmme 29 y 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
         ※2013年5月重庆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");


         リスト > リ = フィルター (
                    having(on(Map.class).get("年份"),isIn(Arrays.asList("2009","2011")))
                    .and(having(on(Map.class).get("地区"),isIn(Arrays.asList("深圳"))))
                            ,aTable.rowMap().values());
         System.out.println(li);
于 2011-11-24T07:49:09.493 に答える