精华内容
下载资源
问答
  • java 中将数组转换成list的方法

    千次阅读 2019-09-23 17:22:09
    java 中将数组转换成list的方法 目录:         1.数组转list的一般方法         2.一般方法的弊端     ...

    java 中将数组转换成list的方法

    目录:
            1.将数组转成list的一般方法
            2.一般方法的弊端
            3.正确的解决方法
            4.代码实现
    —————————————————————————
    1.将数组转为list的一般方法

    String[] myArray = { "Apple", "Banana", "Orange" }; 
    List<String> myList = Arrays.asList(myArray);
    //上面两个语句等价于下面一条语句
    List<String> myList = Arrays.asList("Apple","Banana", "Orange");
    

    JDK中源码对于该方法的说明:

    /**
     *返回由指定数组支持的固定大小的列表。此方法作为基于数组和基于集合的API之间的桥梁,与 Collection.toArray()结合使用。返回的List是可序列化并实现RandomAccess接口。
     */ 
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }
    

    2.一般方法的弊端
    《阿里巴巴Java 开发手册》对其的描述:
    Arrays.asList()将数组转换为集合后,底层其实还是数组,《阿里巴巴Java 开发手册》对于这个方法有如下描述:
    在这里插入图片描述
    当使用集合的修改方法:add(),remove(),clear()方法时会抛出异常:

    List myList = Arrays.asList(1, 2, 3);
    myList.add(4);//运行时报错:UnsupportedOperationException
    myList.remove(1);//运行时报错:UnsupportedOperationException
    myList.clear();//运行时报错:UnsupportedOperationException
    System.out.println(myList.getClass());//class java.util.Arrays$ArrayList
    

    当我们看一下java.util.AbstractList的remove()方法,这样我们就明白为啥会抛出UnsupportedOperationException。

    public E remove(int index) {
        throw new UnsupportedOperationException();
    }
    

    3.正确的解决方式
    1)可以使用ArrayList类的构造方法将Arrays.asList(“a”, “b”, “c”)对象当做参数传进构造方法中。
    2)可以使用JDK1.8中的stream方式实现

    4.代码实现

        List<Integer> myList = Arrays.asList(1,2,3);
       
       		//直接调用抛出java.lang.UnsupportedOperationException
    		myList.add(4);
            System.out.println(myList);//抛出异常
            
    		//方法(1)
            List addList = new ArrayList(myList);
            addList.add(4);
            System.out.println(addList);//[1, 2, 3, 4]
    
    		//方法(2)
            List<Integer> ss = myList.stream().collect(Collectors.toList());
            ss.add(4);
            System.out.println(ss);//[1, 2, 3, 4]
    
    展开全文
  • 开发中经常遇到需要动态增加数组数据的情况,数组转换集合的方法Arrays.asList的使用及注意事项

    在日常开发中,经常遇到需要将动态增加数组数据的情况,但是java中的数组的定义如下:

    Java语言中提供的数组是用来存储固定大小同类型元素。(菜鸟教程)

    也就是说,数组在声明时就是固定长度,不可增加或者减少它的长度的。那么当我们的确需要动态修改长度应该如何去处理,这时候就应该用到List集合了。 将数组转换为集合有以下两种方式

    1. 声明一个List集合,遍历数组,将数组中的每一个元素添加到List集合中

    import java.util.ArrayList;
    import java.util.List;
    
    public class ArraysDemo {
    	public static void main(String[] args) {
    		String[] strArray = {"a","b"};
    		List<String> strList = new ArrayList<>(strArray.length);
    		for (String str : strArray) {
    			strList.add(str);
    		}
    		strList.add("c");
    		strList.add("d");
    		for (String str : strList) {
    			System.out.println(str);
    		}
    	}
    }
    

    2. 使用java提供的类Arrays.asList方法,可以将数组转换为集合

    public class ArraysDemo {
    	public static void main(String[] args) {
    		String[] strArray = {"a","b"};
    		List<String> asList = Arrays.asList(strArray);
    		// 此处会报异常
    		asList.add("e");
    		for (String str : asList) {
    			System.out.println(str);
    		}
    	}
    }
    

    但是当我们转换了之后,需要动态修改这个集合时就发现问题了。

    Exception in thread "main" java.lang.UnsupportedOperationException
    	at java.util.AbstractList.add(AbstractList.java:148)
    	at java.util.AbstractList.add(AbstractList.java:108)
    	at testProject.ArraysDemo.main(ArraysDemo.java:11)
    

    在此我们查看一下Arrays.asList(T... a)的源码,可以发现这个方法返回的类是这个java.util.Arrays.ArrayList.ArrayList<T>,是Arrays下的内部类,而不是java.util.ArrayList,它继承了AbstractList但是并没有实现像ArrayList中的添加和删除方法,当调用add方法时会抛出异常UnsupportedOperationException()

    // asList方法的函数体
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }
    
    // 当前的ArrayList是Arrays下的私有内部类
    private static class ArrayList<E> extends AbstractList<E>
            implements RandomAccess, java.io.Serializable
        {
        // 省略类的实现代码...
        }
    

    解决方法

    我们可以将这个转换后的集合作为参数传给声明的List中 这时候就可以使用List中的添加和删除方法了。

    public class ArraysDemo {
    	public static void main(String[] args) {
    		String[] strArray = {"a","b"};
    		List<String> asList = new ArrayList<>(Arrays.asList(strArray));
    		asList.add("e");
    		for (String str : asList) {
    			System.out.println(str);
    		}
    	}
    }

    才疏学浅,如文中有错误,感谢大家指出。 

    展开全文
  • 将数组转换成集合

    2019-08-31 11:20:23
    将数组转换成集合 import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Demo4_AsList { public static void main(String[] args) { demo1(); //demo2(); //集合...

    将数组转换成集合

    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class Demo4_AsList {
    
    	public static void main(String[] args) {
    		demo1();
    		//demo2();
    		//集合转数组,加泛型的
    		//demo3();
    	}
    
    	public static void demo3() {
    		ArrayList<String> list = new ArrayList<>();
    		list.add("a");
    		list.add("b");
    		list.add("c");
    		list.add("d");
    		
    		String[] arr = list.toArray(new String[10]);		//当集合转换数组时,数组长度如果是小于等于集合的size时,转换后的数组长度等于集合的size
    															//如果数组的长度大于了size,分配的数组长度就和你指定的长度一样
    		for (String string : arr) {
    			System.out.println(string);
    		}
    	}
    
    	public static void demo2() {
    //		int[] arr = {11,22,33,44,55};			
    //		List<int[]> list = Arrays.asList(arr);			
    //		System.out.println(list);						//[[I@15db9742]
    		Integer[] arr = {11,22,33,44,55};					
    		List<Integer> list = Arrays.asList(arr);
    		System.out.println(list);					//[11, 22, 33, 44, 55]
    	}
    
    	public static void demo1() {
    		String[] arr = {"a","b","c"};
    		List<String> list = Arrays.asList(arr);				//将数组转换成集合
    		//list.add("d");									//不能添加
    		System.out.println(list);
    	}
    
    }
    
    
    总结:1.数组转换成集合虽然不能增加或减少元素,但是可以用集合的思想操作数组,也就是说可以使用其他集合中的方法。2.基本数据类型的数组转换成集合,会将整个数组当作一个对象转换。3.将数组转换成集合,数组必须是引用数据类型。
    展开全文
  • 这是本人写的一个基于JSON的完整项目,实现了Java对象、数组集合转换为Json(Json转化为Java对象、数组集合)。这是一个完整的项目,下载解压后直接导入MyEclipse/Eclipse中,运行com.demo.JSONDemo类即可看到效果...
  • Java——数组转换为List集合

    千次阅读 2019-01-10 15:25:38
    package day04; import java.util.ArrayList; import java.util.... * 数组转换为List集合 * 不能转换为Set集合,原因在于Set集合不能存放重复元素 * @author Administrator * */ public class ToListDemo ...
    package day04;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    /**
     * 数组转换为List集合
     * 不能转换为Set集合,原因在于Set集合不能存放重复元素
     * @author Administrator
     *
     */
    public class ToListDemo {
    	public static void main(String[] args) {
    		String[] array = {"1","2","3","4","5"};
    		/*
    		 * 通过Arrays转换的集合是不能添加新元素
    		 */
    		List<String> list = Arrays.asList(array);
    		System.out.println(list);
    		/*
    		 * 所有的集合(包括Set集合)都支持一个构造方法,参数传入一个Collection
    		 * 这个构造方法的好处是,在创建集合时
    		 * 默认就包含给定集合中的所有元素
    		 */
    		List<String> list2 = new ArrayList<String>(list);
    		
    		list2.add("6");
    		
    		System.out.println(list2);
    	}
    }
    

    在这里插入图片描述

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Java中将数组List

    2021-01-18 22:52:25
    在开发中,我们有时候会需要将数组转换集合List,这时候可能会想到Arrays.asList(),毕竟它是java提供的,肯定专业。。。吗? Integer[] a = {1, 2, 3}; List<Integer> list = Arrays.asList(a); System.out...
  • 在日常开发中,经常会遇到数组集合,例如调用Arrays.asList()会返回一个ArrayList。当我们想在这个集合中使用add()方法的时候就会出现报错如下图所示 出现这种原因是由于Arrays.asList()方法返回的是一个内部类...
  • 一、数组转化成集合 ... a)方法,将数组转换成List集合。  代码实例:  package cn.ccut; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Demo { p...
  • Java中,我们可以使用new ...(Arrays.asList(array))Array转换为ArrayList ArrayExample1.java package com.mkyong; import java.util.ArrayList; import java.util.Arrays; import java.util.List; pub...
  • 如何在Java中将数组转换为Set

    万次阅读 2020-04-15 15:29:18
    I would like to convert an array to a Set in Java. 我想将数组转换Java中的Set。 There are some obvious ways o
  • Java字符串数组集合方法

    千次阅读 2020-11-07 15:09:52
    数组集合方法 使用 Arrays.asList(数组) 代码如下: //定义一个字符串 String zhuan = "1,2,3,4,5,6,7,8,9";... // 把数组成集合 List<String> stringList = Arrays.asList(split); //输出结果 S
  • 主要介绍了Java List转换成String数组几种实现方式详解的相关资料,需要的朋友可以参考下
  • 效果展示 代码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>测试</title> </head>... // 创建一个Java数组 ...
  • 主要介绍了Java数组集合的相互转换实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java 数组成集合List 三种方法 package com.list; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Java 数组成集合List * @author luolei * @date 2019年2月18日 ...
  • java 基本数据类型的数组转换成集合

    千次阅读 2018-09-26 15:22:05
    注意:基本数据类型的数组转换成集合,会整个数组当作一个对象转换,将数组转换成集合,数组必须是引用数据类型。 public static void main(String[] args) { int[] arr = {11,22,33,44,55}; List&lt;int...
  • Java 数组如何转List集合

    千次阅读 2018-04-23 10:05:31
    问题描述:对于给定的如下数组,如何转换成List集合? String[] array = {“a”,”b”,”c”}; 参考stackoverflow总结如下几种写法: 1.使用原生方式,拆分数组,添加到ListList resultList = new ArrayList<&...
  • java数组快速转List集合

    万次阅读 2017-12-12 16:41:36
    java中,如果想把一个数组转换成为List集合,我们一般会使用Arrays.asList()方法,代码如下: public class ArrayTest1 { public static void main(String[] args) { String[] arr = {"aa","bb"...
  • 数组转换成List集合

    万次阅读 多人点赞 2019-07-08 13:57:21
    问题描述:对于给定的如下数组,如何转换成List集合? String[] array = {"a","b","c"}; 参考stackoverflow总结如下几种写法: 1.使用原生方式,拆分数组,添加到List List<String> resultList = new ...
  • Java数组集合&集合转数组

    万次阅读 多人点赞 2019-04-16 23:50:48
    一、数组转换集合 需要注意的是,转换只能转换为List集合。那么为什么不能转换为Set集合呢? 原因是:Set不能存放重复元素,所以若转换为Set集合可能出现丢失元素的情况。。。 数组转换集合使用的是数组的工具类...
  • 使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方 法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明:asList 的返回对象是一个 Arrays 内部类,并没有...
  • //集合转数组,只能转对象数组(不能转基本类型的数组) ArrayList integerList = new ArrayList(); integerList.add(1); integerList.add(2); Integer[] intArray = integerList.toArray(new Integer[]{
  • java中我们经常会使用Arrays.asList(数组);将数组转换为List类型,但是却不能对转换后的List进行增删的解释。
  • java中将集合数组转换为Stream流

    千次阅读 2019-11-04 16:18:44
    import java.util.*; import java.util.stream.Stream; public class demo_list_set_map_stream { public static void main(String[] args) { // list集合转Stream List<String> list=new A...
  • int数组转换集合,并去重

    千次阅读 2019-12-19 22:16:07
    int类型数组转换集合,使用steam的装箱boxed()方法: List<Integer> collect = Arrays.stream(arr).boxed().collect(Collectors.toList()); 去重可以使用java8的steam流的distinct()方法。 import ...
  • json数组对像转换成java对象集合

    千次阅读 2017-06-23 09:32:25
    * json数组解析成java对象集合 * @param jsonString * @param clazz * @return */ public static List getDTOArray(String jsonString, Class clazz){ JSONArray array = JSONArray.fromObject(json...
  • 数组转换集合后,对集合的操作便是对原数组的操作,如果要改变集合的长度。则会出现一个异常 名为:java.lang.UnsupportedOperationException
  • java数组集合<泛型>的相互转换

    千次阅读 2017-11-19 20:15:39
    举例说明: 1.String型数组转换成集合public static void demo1() { String a[]={"a","b","c"}; List<String> list =Arrays.asList(a); //list.add("d"); System.out.println(list); } 2.in
  • java 将数组转化为集合列表

    千次阅读 2017-10-20 18:43:39
    1.将数组转化为列表将数组转化为一个列表时,程序员们经常这样做: List<String> list = Arrays.asList(arr);Arrays.asList()会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 193,426
精华内容 77,370
关键字:

java将数组转换成集合

java 订阅