目录

方式1、新手方式

方式2、使用Stream流方式

方式3、使用工具类为创建的List对象赋值,

方式4、创建静态集合

方式5、创建不可变集合        (要求JDK1.9 --- Java9版本及以上)


方式1、新手方式

该方式声明的List:元素支持:添加、修改、删除

该方式虽然简单、直观,但并不优雅。

  List<String> list = new ArrayList<>();​list.add("张三");​list.add("李四");​list.add("王五");​list.add("赵六");

使用方式

语法最基本的声明,add() 方法添加。

方式2、使用Stream流方式

该方式声明的List:元素支持:添加、修改、删除

​  List<User> userList = Stream.of(user1, user2, user3).collect(Collectors.toList());userList.forEach(System.out::println);//输出

使用方式:

Stream.of                                                                    数组转换为流的常用方式之一
(user1, user2, user3)                                                  可变参数、数组,可以是:对象、字符串等
.collect(Collectors.toList());                                         流的收集操作
1、将可变参数(或数组)转换为流,
2、使用流的规约操作(终端操作):收集.collect(),
3、收集方式:Collectors.toList(),收集为List(看懂这句,需了解Stream流的实现过程)

解析

Stream.of()是创建 流 的一种方式,他可以传入多个参数创建一个Stream<T>的对象,没有中间操作,终端操作:收集,收集器转换为List集合

方式3、使用工具类为创建的List对象赋值,

该方式声明的List:元素支持:添加、修改、删除

  List<String> list = new ArrayList<>();//List规定为String类型,所以可变参数也要是String哦​Collections.addAll(list,"张三丰","张无忌","周芷若","赵敏","张强");、list.forEach(System.out::println);

使用方式

指定需要添加的集合,然后通过在addAll()中传入一个 “可变参数” ,可变参数也就是类型一样,但个数不限的参数,可变参数有数组的性质,故传入一个 数组 对象也可以(多个数组对象就不满足可变参数的定义了哦~)。

方式4、创建静态集合

(该集合疑似和数组绑定),由于数组长度固定,该集合不可添加和删除元素,添加、删除就会报错,但支持修改。

      @Testpublic void test() throws Exception{List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);//        int[] arr = new int[]{1,2,3};//        IntStream.of(arr).forEach(System.out::print);//        System.out.println();//        Integer[] arr1 = new Integer[]{1,2,3};//        Stream.of(arr1).forEach(System.out::println);//        Stream.of(arr).forEach(System.out::println);​//        numbers.add(10);//运行报错java.lang.UnsupportedOperationException//        numbers.remove(0);//运行报错java.lang.UnsupportedOperationExceptionnumbers.set(0,5);//可以修改numbers.stream().forEach(System.out::println);//        numbers.stream().sorted().forEach(System.out::println);//        numbers.parallelStream().forEach(System.out::println);}

解析:本质是将一个数组转成List,数组的大小是固定的,所以此List不能 添加 和 删除 元素,但支持 修改 元素。

如果调用add()方法 添加 新的元素,会报异常:java.lang.UnsupportedOperationException

删除 同理。

支持 修改 。虽然不能 添加 或者 删除 但支持 修改 其中的元素。

方式5、创建不可变集合        (要求JDK1.9 --- Java9版本及以上)

该方式声明的List:元素不可以 添加、修改、删除

//只支持java9及以上版本List list = List.of(1,2,3,4,5);//支持Set和Map
Set set = Set.of(1,2,3,4,5);Map map = Map.of(k,v,k,v,k,v,k,v,);

Java中,常用的List的五种声明并赋值操作相关推荐

  1. JAVA中创建线程池的五种方法及比较

    之前写过JAVA中创建线程的三种方法及比较.这次来说说线程池. JAVA中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用.另一类是通过Thr ...

  2. java中读取properties文件内容五种方式

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

  3. java中的io复用_从 Java 中的零拷贝到五种IO模型

    在之前的文章中,我们聊过了 Java 中的零拷贝,零拷贝就是指数据不会在内核空间和用户空间之间相互拷贝.这样就减少了内核态与用户态的切换,自然就很高效. 拷贝文件只是 IO 操作中一个特殊的情况,大多 ...

  4. java中map集合遍历的五种方式

    建立一个map,并存入数据 Map<Integer,Integer> map = new HashMap<>(); 第一种遍历方式,通过keySet() for(Integer ...

  5. java中常用的几种排序算法--常见笔试面试

    转载:http://blog.csdn.net/ygc87/article/details/7208082 以下列出Java中常用的几种排序算法,只是简单实现了排序的功能,还有待改进,望指教(以下均假 ...

  6. JAVA中常用的逻辑运算符_Java中常用的运算符

    运算符是一种"功能"符号,用以通知 Java 进行相关的运算,Java 语言中常用的运算符可分为如下几种: 算数运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符. 一.算数运 ...

  7. Java中常用的API

    文章目录 前言 一.java.lang String StringBuilder Integer parseXXX Math Object System Throwable Thread Runnab ...

  8. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

  9. Java中List for循环的6种写法总结(推荐)(亲测)

    如下所示: List<String> list = new ArrayList<String>(); ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

最新文章

  1. 【CVPR 2020】神经网络架构搜索(NAS)论文和代码汇总
  2. 使用模板将Web服务的结果转换为标记语言
  3. 动态代理——事务处理
  4. Synchronize锁对象
  5. Laravel核心解读--控制器
  6. CString转char的方法总结
  7. 对话系统聊天机器人的设计艺术(上)
  8. lm723大电流可调电源电路图_高稳定大电流直流可调稳压电路
  9. ubuntu安装hive2.3.7
  10. 体检套餐管理系统的综合版
  11. Repeater控件如何让变量自增 asp.net
  12. Visual Studio 2010 版本之前的区别
  13. SATI阅读重点有哪些?
  14. 如何使静态图片做成动态效果?怎么让静态图片动起来
  15. @Value 注解用法
  16. SQL优化步骤(建议收藏)
  17. LiveData的使用和原理
  18. 小米手机扩容教程_小米4 16g升级64g教程:小米4 16g扩张64g步骤
  19. kaldi跑自己数据遇到的问题合集(持续更)
  20. 【最新】M1芯片Mac安装PS2021/2020卡在启动页解决教程下载方法

热门文章

  1. C语言基础应用(三)运算符与表达式
  2. Flask实现身份证号查询相关信息(Python2.7)
  3. TRIZ系列-创新原理-40-复合材料原理
  4. OpenCV直方图计算函数calcHist详解
  5. OpenGL矩阵变换
  6. emacs阅读linux代码,Emacs - 代码编辑神器之一
  7. python日期转化成周数_python dataframe将周数转换为月
  8. 制作一个简单的照片查看器(支持缩放手势)
  9. Oauth2.0的使用QQ互联登录
  10. w ndows相机控制协议,米联客(MSXBO)USB3.0 UVC摄像头实现基于FT602Q芯片方案