最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關于List、Map、Stream初始化方式

 更新時間:2022年08月23日 08:30:50   作者:HeroSongZ  
這篇文章主要介紹了關于List、Map、Stream初始化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

List、Map、Stream初始化

第一種方法

? ? ?初始化List
? ? ?List<string> list = new ArrayList<string><string>(); ?
? ? ?list.add("string1"); ?
? ? ?list.add("string2"); ?
? ? ?list.add("stringN"); ?
? ??
? ? ?初始化Map
? ? ?Map</String , Object> map = new HashMap</String , Object>(); ?
? ? ?map.put("key1", "value1"); ?
? ? ?map.put("key2", "value2"); ?
? ? ?map.put("keyN", "valueN"); ?

第二種方法(雙括號初始化法/匿名內部類)

? ? ?初始化List ??
? ? ?List<string> list = new ArrayList<string>(){{ ?
? ? ?add("string1"); ?
? ? ?add("string2"); ?
? ? ?add("stringN"); ? ?}}; ?
? ? ?
? ? ?初始化Map ? ?
? ? ?Map</String , String> map = new HashMap</String , Object>(){{ ?
? ? ?put("keyOne", "valueOne"); ?
? ? ?put("keyTwo", "valueTwo"); ?
? ? ?put("keyThree", "valueThree"); ??
? ? ?}};

慎用, 非靜態(tài)內部類/ 匿名內部類包含了外圍實例的引用, 如果擁有比外部類更長的生命周期,

有內存泄露隱患

stream初始化

? ? ?Map map = Stream.of(1,2,3,4).collect(
? ? ?Collectors.toMap(x -> x, integer -> integer,(key, value) -> value, HashMap::new));
? ? ?System.out.println(JSONObject.toJSONString(map));
? ??
? ? ?List list = Stream.of(1,2,3,4).collect(Collectors.toList());
? ? ?System.out.println(JSONObject.toJSONString(list));

利用Array與ArrayList的相互轉換方法初始化ArrayList,代碼如下:

ArrayList<String> list = new ArrayList(Arrays.asList("banana", "milk", "bacon")); ?

List Stream 常用方法

Stream 使用一種類似用 SQL 語句從數據庫查詢數據的直觀方式來提供一種對 Java 集合運算和表達的高階抽象(菜鳥教程)。這里的Stream不同于IO中的stream。

聲明Student對象

public class Student {
?? ?private String name;
?? ?private Integer age;
?? ?private Integer math;
?? ?private Integer english;
?? ?//get set
?? ?public Student(String name, Integer age, Integer math, Integer english) {
?? ??? ?super();
?? ??? ?this.name = name;
?? ??? ?this.age = age;
?? ??? ?this.math = math;
?? ??? ?this.english = english;
?? ?}
?? ?@Override
?? ?public String toString() {
?? ??? ?return "Student [name=" + name + ", age=" + age + ", math=" + math + ", english=" + english + "]";
?? ?}
}

Stream一些常用的API 

public class StreamDemo {
?? ?List<Student> list = null;
? ? //初始化數據
?? ?@Before
?? ?public void beforetest() {
?? ??? ?list = Arrays.asList(new Student("Tom", 18, 88, 90), new Student("Jerry", 20, 77, 89),
?? ??? ??? ??? ?new Student("Lily", 17, 98, 79), new Student("Lucy", 19, 70, 80), new Student("LiLei", 18, 88, 90),
?? ??? ??? ??? ?new Student("HanMeiMei", 21, 87, 79));
?? ?}?
?? ?
?? ?@Test
?? ?public void streamtest() {
?? ??? ?// filter 過濾器返回還是一個stream流對象
?? ??? ?//查詢math成績大于80的學生并遍歷輸出
?? ??? ?list.stream().filter(e->e.getMath()>80).forEach(System.out::println);//.forEach(e->System.out.println(e))
?? ??? ?//統計數量count
?? ??? ?System.out.println(list.stream().count());
?? ??? ?//如統計總分大于160的人數
?? ??? ?System.out.println(list.stream().filter(e->e.getEnglish()+e.getMath()>160).count());
?? ??? ?//limit ?取前n個值
?? ??? ?list.stream().limit(3).forEach(System.out::println);
?? ??? ?//skip 跳過前n個
?? ??? ?list.stream().skip(2).forEach(System.out::println);
?? ??? ?//distinct 去除重復數據
?? ??? ?list.stream().distinct().forEach(System.out::println);
?? ??? ?//map 映射元素可以對元素進行操作 ? 例如對每個學生年齡加1
?? ??? ?list.stream().map(e->{
?? ??? ??? ?e.setAge(e.getAge()+1);
?? ??? ??? ?return e;
?? ??? ?}).forEach(System.out::println);
?? ??? ?//sorted 排序?
?? ??? ?//升序
?? ??? ?list.stream().sorted((a,b)->{
?? ??? ??? ?return a.getEnglish().compareTo(b.getEnglish());
?? ??? ?});
?? ??? ?//降序
?? ??? ?list.stream().sorted((a,b)->{
?? ??? ??? ?return b.getEnglish().compareTo(a.getEnglish());
?? ??? ?});
?? ??? ?//返回第一個元素 ?
?? ??? ?Optional<Student> first = list.stream().findFirst();
?? ??? ?System.out.println(first.get());
?? ??? ?//返回任意一個元素
?? ??? ?System.out.println(list.stream().findAny().get());
?? ??? ?//anyMatch 是否匹配任意一元素 ?檢查是否包含名字為Tom的
?? ??? ?System.out.println(list.stream().anyMatch(e->e.getName().equals("Tom")));
?? ??? ?//allMatch 是否匹配所有元素
?? ??? ?System.out.println(list.stream().allMatch(e->e.getName().equals("Tom")));
?? ??? ?//noneMatch ?是否未匹配所有元素
?? ??? ?System.out.println(list.stream().noneMatch(e->e.getName().equals("Tom")));
?? ??? ?//findFirst 返回元素中第一個值
?? ??? ?Student student = list.stream().findFirst().get();
?? ??? ?//findAny 返回元素中任意一個值
?? ??? ?Student student1 = list.stream().findAny().get();
?? ??? ?//max 返回最大值 查詢英語成績最高的學生
?? ??? ?Student student2 = list.stream().max((l1,l2)->l2.getEnglish().compareTo(l1.getEnglish())).get();
?? ??? ?//min 最小值 ?將上面l1,l2位置對調
?? ??? ?Student student3 = list.stream().max((l1,l2)->l2.getEnglish().compareTo(l1.getEnglish())).get();
?? ??? ?//將流對象轉為list?
?? ??? ?list.stream().filter(e->e.getMath()>80).collect(Collectors.toList());
?? ??? ?//將流轉未set
?? ??? ?list.stream().filter(e->e.getMath()>80).collect(Collectors.toSet());
?? ??? ?//對對象中的某項進行統計
?? ??? ?IntSummaryStatistics c = list.stream().collect(Collectors.summarizingInt(Student::getEnglish));
?? ??? ?System.out.println(c);//IntSummaryStatistics{count=6, sum=507, min=79, average=84.500000, max=90}
?? ?}? ?
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 基于SpringBoot核心原理(自動配置、事件驅動、Condition)

    基于SpringBoot核心原理(自動配置、事件驅動、Condition)

    這篇文章主要介紹了基于SpringBoot核心原理(自動配置、事件驅動、Condition),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • springboot使用線程池(ThreadPoolTaskExecutor)示例

    springboot使用線程池(ThreadPoolTaskExecutor)示例

    大家好,本篇文章主要講的是springboot使用線程池(ThreadPoolTaskExecutor)示例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • idea中斷點類型之All和Thread的區(qū)別介紹

    idea中斷點類型之All和Thread的區(qū)別介紹

    使用all模式對于程序中含有多個線程來說,會將多個線程都阻塞在斷點,此時所有的線程都執(zhí)行到此處,在最后一個線程執(zhí)行到此處是會發(fā)生暫停,在這之前的線程會繼續(xù)執(zhí)行到任意位置,本文給大家詳細介紹下idea中斷點類型之All和Thread的區(qū)別,感興趣的朋友一起看看吧
    2022-03-03
  • SpringBoot?基于?MongoTemplate?的工具類過程詳解

    SpringBoot?基于?MongoTemplate?的工具類過程詳解

    MongoDB是一個高性能,開源,無模式的文檔型數據庫,是當前NoSql數據庫中比較熱門的一種,這篇文章主要介紹了SpringBoot基于MongoTemplate的工具類,需要的朋友可以參考下
    2023-09-09
  • java讀取Excel導入去除空行簡單方法

    java讀取Excel導入去除空行簡單方法

    這篇文章主要給大家介紹了關于java讀取Excel導入去除空行的簡單方法,在日常開發(fā)中,想必都遇到過批處理的需求,文中給出了詳細的示例代碼,需要的朋友可以參考下
    2023-07-07
  • IDEA實用好用插件推薦及使用方法教程詳解(必看)

    IDEA實用好用插件推薦及使用方法教程詳解(必看)

    這篇文章主要介紹了IDEA實用好用插件推薦及使用方法教程,本文通過實例截圖相結合給大家介紹的非常詳細,對大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Mybatis使用Collection屬性的示例代碼

    Mybatis使用Collection屬性的示例代碼

    本文主要介紹了Mybatis使用Collection屬性的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • IDEA JavaWeb項目啟動運行后出現404錯誤的解決方法

    IDEA JavaWeb項目啟動運行后出現404錯誤的解決方法

    這篇文章主要介紹了IDEA JavaWeb項目啟動運行后出現404錯誤的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • SpringMVC和Ajax的交互詳解(手工處理)

    SpringMVC和Ajax的交互詳解(手工處理)

    Ajax即異步的?JavaScript和XML,是一種無需重新加載整個網頁的情況下,能夠更新部分模塊的網頁技術,下面這篇文章主要給大家介紹了關于SpringMVC和Ajax交互的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • 詳解SpringMVC中的日期處理和文件上傳操作

    詳解SpringMVC中的日期處理和文件上傳操作

    這篇文章主要為大家詳細介紹了SpringMVC中的日期處理和文件上傳操作方法,文中的示例代碼講解詳細,對我們學習有一定借鑒價值,需要的可以參考一下
    2022-08-08

最新評論

诸暨市| 义马市| 濉溪县| 常德市| 望都县| 金堂县| 崇礼县| 吴江市| 烟台市| 南靖县| 南漳县| 杭锦旗| 延庆县| 湟源县| 赤城县| 麟游县| 炉霍县| 蕲春县| 乐亭县| 增城市| 徐州市| 会宁县| 太保市| 资兴市| 安国市| 云梦县| 嘉黎县| 台山市| 道真| 天柱县| 诏安县| 呼图壁县| 宜城市| 尼勒克县| 天等县| 乌拉特后旗| 靖江市| 论坛| 咸阳市| 襄垣县| 尉氏县|