java数组和list转换_js将数组转换成字符串

java数组和list转换_js将数组转换成字符串日常开发时,经常遇到需要List与数组互相转换的场景。List转换成数组,可以用List的toArray()或者toArray(T[]a)的方法。数组转换成List,可以用Arrays.asList()或者Collections.addAll()方法。如果仅仅为了打印数组,不需要把数组转换成List,可以使用Arrays.toString()方法。一.List转数组List转换成数组可以调用toArray方法,可以将List直接转为Object[]数组这里有两个重载的方法,一般使用带泛

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

日常开发时,经常遇到需要List与数组互相转换的场景。
List转换成数组,可以用List的toArray()或者toArray(T[] a)的方法。
数组转换成List,可以用Arrays.asList()或者Collections.addAll()方法。
如果仅仅为了打印数组,不需要把数组转换成List,
可以使用Arrays.toString()方法。

一.List转数组

List转换成数组可以调用toArray方法,可以将List直接转为Object[]数组
这里有两个重载的方法,
一般使用带泛型参数的方法:

Object[] toArray();
<T> T[] toArray(T[] a);

无参数toArray方法,这里注意不能强转,可能会出现报错.

泛型的toArray方法要注意类型必须是包装类型,基本类型是不行的.

二.数组转List

可以使用Arrays.asList()或者Collections.addAll()方法,推荐使用Collections.addAll()方法,这样得到的返回对象可以往里面添加新的元素。

String[] strArray = { "a", "b" };
List<String> strList = Arrays.asList(strArray);

注意该方法的返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList,
它并非java.util.ArrayList类。
java.util.Arrays.ArrayList类具有set(),get(),contains()等方法,但是不支持添加add()或删除remove()方法,调用这些方法会报错。

如果直接往返回的list添加一个新元素,运行会报错UnsupportedOperationException

strList.add("c");

解决方法是新建一个List对象,并且加入返回的strList,然后再add新元素:

List<String> strListNew = new ArrayList<>(strList);
strListNew.add("new data");

Collections.addAll():

String[] strArray = { "a", "b" };
List<String> strList = new ArrayList<>(strArray.length);
Collections.addAll(strList, strArray);
strListNew.add("c");

得到的返回对象可以直接添加新的元素。

Java8可用stream流将3种基本类型数组转为List

List<Integer> intList= Arrays.
stream(new int[] { 1, 2,  3}).boxed().collect(Collectors.toList());
List<Long> longList= Arrays.
stream(new long[] { 1, 2, 3 }).boxed().collect(Collectors.toList());
List<Double> doubleList= Arrays.
stream(new double[] { 1, 2, 3 }).boxed().collect(Collectors.toList());
String[] arrays = {"a", "b", "c"};
List<String> stringList= Stream.of(arrays).collect(Collectors.toList());

其他的数据类型short[]byte[]char[]在JDK1.8中目前不支持

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172262.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 路由追踪:traceroute/tcptraceroute

    路由追踪:traceroute/tcptraceroute一.工作原理traceroute:IP路由过程中对数据包TTL(TimetoLive,存活时间)进行处理。当路由器收到一个IP包时,会修改IP包的TTL(及由此造成的头部检验和checksum变化)。每收到一个包,检查这个的TTL是否是0。如果是,表明这个包还没有到达目的地,而且剩余时间不多了,肯定是到不了目的地了。这样路由器就简单地丢弃这个包,并给源主机发送ICMP通知,说这个包已经…

    2022年6月20日
    58
  • 开机就提示“请安装TCP/IP协议,error=10106”的解决的方法

    开机就提示“请安装TCP/IP协议,error=10106”的解决的方法

    2021年12月4日
    60
  • int与bigdecimal的相互转换[通俗易懂]

    int与bigdecimal的相互转换[通俗易懂] int转bigdecimalBigDecimalnumber=newBigDecimal(0);intvalue=score;number=BigDecimal.valueOf((int)value);bigdecimal转intBigDecimalb=newBigDecimal(45.45);inta=b.intValue(); …

    2022年4月19日
    86
  • C++之Error无法解析的外部符号[通俗易懂]

    C++之Error无法解析的外部符号[通俗易懂]C++之VisualStudio的使用遇到问题解决文章目录C++之VisualStudio的使用遇到问题解决问题一无法解析的外部符号问题二无法打开文件lib问题三debug不可以运行,release可以运行问题一无法解析的外部符号[问题描述]在编译中遇到,viaualstudio无法解析的外部符号该符号在外部函数中被引用[问题处理]1.分析问题,这个错误定义为一个:连接错误。2.根本原因是函数虽然申明了,但是没有定义函数的实现3.排查问题出现的几

    2022年6月28日
    33
  • 粒子群算法改进思路「建议收藏」

    粒子群算法改进思路「建议收藏」粒子群算法的发展过程。粒子群优化算法(ParticalSwarmOptimizationPSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性.由于PSO操作简单、收敛速度快,因此在函数优化、图像处理、大地测量等众多领域都得到了广泛的应用.随着应用范围的扩大,PSO算法存在早熟收敛、维数灾难、易于陷入局部极值等问题需要解决,主要…

    2022年5月16日
    45
  • Java培训机构排名前十_ui培训机构

    Java培训机构排名前十_ui培训机构02JVM线程JVM内存区域JVM运行时内存垃圾回收与算法JAVA四种引用类型GC分代收集算法VS分区收集算法GC垃圾收集器JAVAIO/NIOJVM类加载器03JAVA集合接口继承关系和实现LISTSETMAP04JAVA多线程并发JAVA并发知识库JAVA线程实现/创建方式4种线程池线程生命周期(状态)终止线程4种方式sleep与wait区别start与run区别JAVA后台线程JAVA锁线程基本方法线程上下文切换同步锁与死

    2022年10月3日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号