1.转换方法

1.遍历的方式,依次添加到集合中。
2.Arrays.asList()方法
3.List.of()方法
4.Collections.addAll(集合,数组)方法,将集合存储到数组中

1.1遍历的方式

这种方式转换成的集合,集合长度可变,可以后续向集合添加数据

int[] i = {1,5,8,7,11,52};//1.遍历的方式List list = new ArrayList();for (int x:i) {list.add(x);}System.out.println(list);

1.2Array.asList()方法

**注意:**以下的书写方式创建的集合,后续是不能添加数据的,因为alList返回的是ArrayList,是Array的内部类,调用add()方法时会报错,可以使用改进方法,这样就可以在集合中添加数据了。可以用List.set()方法修改数据。

int[] i = {1,5,8,7,11,52};List list = Arrays.asList(i);

在集合中添加数据时报的错

改进方法(重新构建一个新的ArrayList)

int[] i = {1,5,8,7,11,52};
List list = new ArrayList<>(Arrays.asList(i));

1.3List.of()

此方法为 Java9新增方法,定义在List接口内,并且为静态方法,故可以由类名直接调用。
集合也是不可变的,在集合添加数据时,报同上的错误。

List list = List.of(1,2,45);

1.4Collections.addALL()

集合是可变的。

int[] b = {1,5,8};
List list = new ArrayList();
Collections.addAll(list,b);

总结:
要想获得一个可变的集合:可以通过List list = new ArrayList<>(Arrays.asList(i))或者Collections.addAll(list,b)或者直接将数组遍历存进集合,这些方法获取的是可变的集合。

直接单纯的使用asList()转换成的集合不能add,但能set。

2.数组和集合的区别

1、数组可以储存基本数据类型和对象,而集合中只能储存对象(可以以包装类形式存储基本数据类型)。

2、数组的长度是固定的,集合长度是可以改变的。

3、定义数组时必须指定数组元素类型,集合默认其中所有元素都是Object。

4、无法直接获取数组实际存储的元素个数,length用来获取数组的长度,但可以通过size()直接获取集合实际存储的元素个数。

5、集合有多种实现方式和不同的适用场合,而不像数组仅采用分配连续的空间方式。

6、集合以接口和类的形式存在,具有封装,继承和多态等类的特性,通过简单的方法和属性调用即可实现各种复杂的操作,大大提高软件的开发效率。

3.List.of()和asList()的区别

1.Arrays.asList返回可变的list,而List.of返回的是不可变的list
2.Arrays.asList支持null,而List.of不行
3.它们的contains方法对null处理不一样
4.Arrays.asList:数组的修改会影响原数组。

数组转集合的方法(注意事项)相关推荐

  1. JAVA SE学习day_11:集合的相关应用、增强型for循环、foreach方法、数组与集合的相互转换

    一.集合的相关应用 1.1 将一个集合加到另一个集合上 boolean addAll(Collection c) 将给定集合中的所有元素添加到当前集合中.调用方法之后只要c1集合发生变化就返回true ...

  2. Java 数组转成集合List三种方法和(数组、集合List、Set相互转换)

    Java 数组转成集合List 三种方法 package com.list;import java.util.ArrayList; import java.util.Arrays; import ja ...

  3. Java字符串数组转集合方法

    数组转集合方法 使用 Arrays.asList(数组) 代码如下: //定义一个字符串String zhuan = "1,2,3,4,5,6,7,8,9";//分割字符串Stri ...

  4. python  字典 元组 集合 列表 字符串 字节数组 常用的方法总结

    字典的方法 函数 说明 D代表字典对象 D.clear() 清空字典 D.pop(key) 移除键,同时返回此键所对应的值 D.copy() 返回字典D的副本,只复制一层(浅拷贝) D.update( ...

  5. 转载--编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议60~64)

    阅读目录 建议60:性能考虑,数组是首选 建议61:若有必要,使用变长数组 建议62:警惕数组的浅拷贝 建议63:在明确的场景下,为集合指定初始容量 建议64:多种最值算法,适时选择 噢,它明白了,河 ...

  6. java json 长度限制_[原创]Java中字符串、数组、集合及JSONArray的长度属性

    前言:数组没有length()这个方法,有length的属性.String有有length()这个方法. 1.String字符串 String str = "abcdefg"; s ...

  7. c#sort升序还是降序_C#中对数组或集合进行升序或降序排序

    在.net framework中,数组和集合都实现了用于排序的方法sort(),数组通过调用Array.Sort(数组名)排序,集合通过调用 集合对象.Sort()方法排序. 默认的排序是使用升序排列 ...

  8. vue 循环遍历list_vue使用map代替Aarry数组循环遍历的方法

    需求:根据主键id来找到对应的数组下标 原本的方法是使用for循环遍历该数组,变量 i 就是下标,问题在于,如果有多重for循环,就会导致性能大大下降,数据也容易出错 因此使用map,让数组(原本是l ...

  9. 将HTMLCollection转换为数组的最有效方法

    本文翻译自:Most efficient way to convert an HTMLCollection to an Array 有没有更有效的方法将HTMLCollection转换为数组,除了迭代 ...

最新文章

  1. Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题
  2. c语言如何让函数一直执行,C语言如何实现在每天某个特定时间执行某个函数?
  3. Navicat Monitor v1.7的新功能说明
  4. 揭秘!如何快速提高网站权重-关键词百度指数叠加
  5. Lucene知识小总结4:索引的反删除
  6. python人脸识别门禁_用Python做人脸识别
  7. oracle po:默认申请分组,PR自动创建PO采购订单:强制按照PR行进行分组
  8. docker无法连接mysql镜像_关于Docker官方CentOS镜像无法启动mysqld的总结
  9. 纸白银:交易简便成本低
  10. UIImage 图像-IOS开发 (实例)
  11. 模仿SpringMVC的DispatcherServlet 手撸300行代码提炼精华设计思想并保证功能可用(1.0版本)
  12. HBase之四--(1):Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询...
  13. Android系统自带样式(@android:style/) (转)
  14. 10条实用简洁的python代码,拿走即用(内附资料)
  15. Ubuntu安装tftp服务器
  16. HTML5七夕情人节表白网页制作【雪花爱心】HTML+CSS+JavaScript 爱心代码 爱心制作 表白代码 告白网页制作
  17. android 高度百分比,Android 屏幕适配-百分比布局适配
  18. 吉林大学数据库系统原理期末复习笔记
  19. 软件------关于spacedesk分屏软件的使用说明(包括下载和具体启动方式)
  20. 安装Microsoft-project 2016

热门文章

  1. 小学计算机英语,纳米盒小学英语电脑版
  2. 排他锁(EXclusive Lock)
  3. 簇集素蛋白药物有望治疗老年痴呆症
  4. PMP备考——PMP十五至尊图记忆法——五大过程组记忆法
  5. Linux解压和压缩
  6. 苏宁大数据怎么运营_苏宁云商“三驾马车”:大数据、大物流、大金融并行
  7. warning: 重定向到 https://gitlab.link.cn/video/video_ios_sdk.git/
  8. 设置TextView中超链接字体颜色、下划线
  9. 微信小程序python自动化测试_微信小程序UI自动化测试实践:Minium+PageObject
  10. c语言音标字符,c语言常见英语单词带音标-20210408030123.docx-原创力文档