Java List操作3(獲取list中bean對象中的某一列值—map)

select操作蝎抽,獲取list中bean對象中的某一列值
業(yè)務(wù)場景:通常我們獲取list中bean對象中的某個屬性值,需要寫一個for 循環(huán)路克,代碼會比較冗余樟结。話不多說,直接上代碼

1精算、自定義方法

    public interface Select<T> {
        T select(Object obj) ;
    }

     /*
     *選擇對象集合的屬性值 
     *<T extends Comparable<T> ,D>
     */
    public static final <T,D> Set<T> select(Collection<D> colls ,String fieldName){
        return select(colls,new Select<T>(){
            @Override
            public T select(Object obj){
                Object v=getFieldValueByName(obj,fieldName);
                return (T)v;
            }
        });
    }
    /**
     * 通過接口函數(shù)選擇對象集合的屬性值 
     * @param colls
     * @param gb
     * @return 這里使用set作為返回值是為了去重瓢宦,當(dāng)然也可以使用List
     * <T extends Comparable<T> ,D>
     */
    public static final <T,D> Set<T> select(Collection<D> colls,Select<T> gb){
        Iterator<D> iter = colls.iterator() ;
        Set<T> set=new HashSet<T>();
        while(iter.hasNext()) {
            D d = iter.next() ;
            T t = gb.select(d) ;
            if(t!=null){
                set.add(t);
            }
        }
        return set;
    }

2、Java stream流

  • 獲取某一列的值灰羽,并且裝換為String驮履,先擼代碼

    public static void main(String[] args)
      {
          List<User> list = new ArrayList();
          User user1 = new User();
          user1.setId(1L); user1.setMobile("123456");
          list.add(user1);
          User user2 = new User();
          user2.setId(2L); user1.setMobile("12345678");
          list.add(user2);
    
          //獲取某一列的值
          List<String> ids = list.stream().map(f -> f.getId()).collect(Collectors.toList());
          System.out.println(ids);
      }
    
  • 原理

image.png

對于stream流中包含的元素鱼辙,使用給定的轉(zhuǎn)換函數(shù)(f -> String.valueOf(f.getId())),進(jìn)行轉(zhuǎn)換操作玫镐,新生成的stream流只包含轉(zhuǎn)換生成的元素倒戏。
map方法還有三個對于原始類型的變種方法,分別是:mapToInt恐似,mapToLong和mapToDouble杜跷。這三個方法也比較好理解,比如mapToInt就是把原始Stream轉(zhuǎn)換成一個新的Stream矫夷,這個新生成的Stream中的元素都是int類型葛闷。之所以會有這樣三個變種方法,可以免除自動裝箱/拆箱的額外消耗双藕;

3淑趾、獲取list中bean對象中的某一列值,并且轉(zhuǎn)換類型

public static void main(String[] args)
  {
      List<User> list = new ArrayList();
      User user1 = new User();
      user1.setId(1L); user1.setMobile("123456");
      list.add(user1);
      User user2 = new User();
      user2.setId(2L); user1.setMobile("12345678");
      list.add(user2);

      //獲取某一列的值忧陪,并且裝換為String
      List<String> ids = list.stream().map(f -> String.valueOf(f.getId())).collect(Collectors.toList());
      System.out.println(ids);
  }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扣泊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赤嚼,更是在濱河造成了極大的恐慌旷赖,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件更卒,死亡現(xiàn)場離奇詭異等孵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蹂空,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門俯萌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人上枕,你說我怎么就攤上這事咐熙。” “怎么了辨萍?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵棋恼,是天一觀的道長。 經(jīng)常有香客問我锈玉,道長爪飘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任拉背,我火速辦了婚禮师崎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘椅棺。我一直安慰自己犁罩,他們只是感情好齐蔽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著床估,像睡著了一般含滴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丐巫,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天蛙吏,我揣著相機(jī)與錄音,去河邊找鬼鞋吉。 笑死,一個胖子當(dāng)著我的面吹牛励烦,可吹牛的內(nèi)容都是我干的谓着。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼坛掠,長吁一口氣:“原來是場噩夢啊……” “哼赊锚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起屉栓,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤舷蒲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后友多,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牲平,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年域滥,在試婚紗的時候發(fā)現(xiàn)自己被綠了纵柿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡启绰,死狀恐怖昂儒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情委可,我是刑警寧澤渊跋,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站着倾,受9級特大地震影響拾酝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屈呕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一微宝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虎眨,春花似錦蟋软、人聲如沸镶摘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凄敢。三九已至,卻和暖如春湿痢,著一層夾襖步出監(jiān)牢的瞬間涝缝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工譬重, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拒逮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓臀规,卻偏偏與公主長得像滩援,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子塔嬉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一切已是醉美模樣玩徊。 杏花粉挖垛,玉蘭白掸读,連翹黃…… 昨兒還心心念念春未到菱阵,今兒已悄然花濃枝頭香电禀。 怡園小園晌块,不濃症歇,不烈...
    想逢一笑閱讀 510評論 3 11
  • 本片段來自林文采博士的《心理營養(yǎng)-林文采博士的親子教育課》抹竹。 R 閱讀原文片段 第三個心理營養(yǎng):安全感 P6 ...
    胡海默閱讀 579評論 0 0
  • 版權(quán)歸作者所有所袁,任何形式轉(zhuǎn)載請聯(lián)系作者纪吮。 作者:hi大大(來自豆瓣) 來源:https://www.douban....
    很不乖閱讀 433評論 0 0