欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中数组与集合的相互转换实现解析

程序员文章站 2023-11-27 14:32:10
这篇文章主要介绍了java中数组与集合的相互转换实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 lis...

这篇文章主要介绍了java中数组与集合的相互转换实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  • list转数组:采用集合的toarray()方法
  • 数组转list:采用arrays的aslist()方法

数组转换为集合

注意:在数组转集合的过程中,要注意是否使用了视图的方式直接返回数组中的数据。以arrays.aslist()为例,它把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出 unsupportedoperationexception异常。

这是因为arrays.aslist体现的是适配器模式,后台的数据仍是原有数组。aslist的返回对象是一个arrays的内部类,它并没有实现集合个数的相关修改操作,这也是抛出异常的原因。

集合转数组

集合转数组相对简单,一般在适配别人接口的时候常常用到

代码例子

public class main {
  public static void main(string[] args) {

    //1.数组转换为集合
    string[] strs = new string[3];
    strs[0] = "a";
    strs[1] = "b";
    strs[2] = "c";
    list<string> stringlist = arrays.aslist(strs);
    system.out.println(stringlist);
    //1.1注意:直接使用add、remove、clear方法会报错
//    stringlist.add("abc");
    //1.2如果想要正常的使用add等修改方法,需要重新new一个arraylist
    list<string> truestringlist = new arraylist<>(arrays.aslist(strs));
    truestringlist.add("abc");
    system.out.println(truestringlist);

    //2.集合转数组
    list<integer> integerlist = new arraylist<>();
    integerlist.add(1);
    integerlist.add(2);
    integerlist.add(3);

    //新生成的数组大小一定要大于原list的大小
    integer[] integers = new integer[3];
    integerlist.toarray(integers);
    system.out.println(arrays.aslist(integers));
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。