Java初始化List的6种方式

更新时间:2023-07-08 13:39:10 阅读: 评论:0

Java初始化List的6种⽅式
⼀、常规⽅式
这种就是我们平常⽤的最多最平常的⽅式了,没什么好说的,后⾯缺失的泛型类型在 JDK 7 之后就可以不⽤写具体的类型了,改进后会⾃动推断类型。
芦荟拼音
List<String> languages =new ArrayList<>();
languages.add("Java");
languages.add("PHP");
languages.add("Python");
System.out.println(languages);
⼆、Arrays⼯具类辛普森杀妻
这种⽅式添加的是不可变的 List, 即不能添加、删除等操作,需要警惕.
List<String> jdks =asList("JDK6","JDK8","JDK10");
System.out.println(jdks);
如果要可变,那就使⽤ ArrayList 再包装⼀下,如下⾯所⽰。
List<String> numbers =new ArrayList<>(Arrays.asList("1","2","3"));
numbers.add("4");
System.out.println(numbers);
三、Collections ⼯具类
List<String> apples = Collections.nCopies(3,"apple");
System.out.println(apples);
这种⽅式添加的是不可变的、复制某个元素N遍的⼯具类,以上程序输出:中国最大的港口
[apple, apple, apple]
⽼规则,如果要可变,使⽤ ArrayList 包装⼀遍。
List<String> dogs =new ArrayList<>(Collections.nCopies(3,"dog"));
dogs.add("dog");
System.out.println(dogs);
还有初始化单个对象的 List ⼯具类,这种⽅式也是不可变的,集合内只能有⼀个元素,⽤得很少。
List<String> cat = Collections.singletonList("cat");
马西亚诺
自然角System.out.println(cat);
还有⼀个创建空 List 的⼯具类,没有默认容量,节省空间
List<String> cat = ptyList("cat");
海伦凯勒的励志故事四、匿名内部类
这种使⽤了匿名内部类的⽅式,可以在创建list的时候指定内部对象,可以让代码变的简洁⼀点。
List<String> names =new ArrayList<>(){{
add("Tom");
add("Sally");
add("John");
}};
System.out.println(names);
这⾥的双括号”{{}}”到底什么意思,什么⽤法呢?第⼀层括弧实际是定义了⼀个匿名内部类 (Anonymous Inner Class),第⼆层括弧实际上是⼀个实例初始化块 (instance initializer block),这个块在内部匿名类构造时被执⾏。在java中,很多结构新建的时候都可以采⽤这种⽅式,⽐如新建HashMap的时候指定初始值
HashMap<String, String> map =new HashMap<String, String>(){
{
map.put("name","test");
宝宝海报
map.put("age","20");麻辣田螺
}
};
五、JDK8 Stream
Stream 是 JDK 8 推出来的新概念,⽐集合还要更强⼤,还可以和集合互相转换。
List<String> colors = Stream.of("1","4","2").List());
System.out.println(colors);
六、JDK 9 List.of
这是 JDK 9 ⾥⾯新增的 List 接⼝⾥⾯的静态⽅法,同样也是不可变的。
List<String> cups = List.of("A","B","C");
System.out.println(cups);

本文发布于:2023-07-08 13:39:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1073023.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   时候   匿名   集合   添加
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图