精华内容
下载资源
问答
  • Java集合框架篇-52-Arrays工具类数组转集合方法和注意事项.pdf
  • Java之数组转集合&集合转数组

    万次阅读 多人点赞 2019-04-16 23:50:48
    一、数组转换为集合 需要注意的是,转换只能转换为List集合。那么为什么不能转换为Set集合呢? 原因是:Set不能存放重复元素,所以若转换为Set集合可能出现丢失元素的情况。。。 数组转换为集合使用的是数组的工具类...

    一、数组转换为集合

    需要注意的是,转换只能转换为List集合。那么为什么不能转换为Set集合呢?

    原因是:Set不能存放重复元素,所以若转换为Set集合可能出现丢失元素的情况。。。

    数组转换为集合使用的是数组的工具类Arrays的静态方法asList。查看API文档可知该方法返回由指定数组支持的固定大小的列表。
    在这里插入图片描述
    eg:

    import java.util.Arrays;
    import java.util.List;
    
    public class testArrayToList {
       public static void main(String[] args) {
    	String [] strArr = {"刘雯","胡歌","杜鹃","邓伦"};
    	List<String> list = Arrays.asList(strArr);
    	System.out.println(list);//[刘雯, 胡歌, 杜鹃, 邓伦]
    }
    }
    
    

    思考一下:如果我想往这个由数组转换过来的集合里面添加元素,我能不能直接调用add方法呢?先试试
    eg:

    import java.util.Arrays;
    import java.util.List;
    
    public class testArrayToList {
       public static void main(String[] args) {
    	String [] strArr = {"刘雯","胡歌","杜鹃","邓伦"};
    	List<String> list = Arrays.asList(strArr);
    	System.out.println(list);
    	 list.add(1,"杨紫");
    	 System.out.println(list);
    	 
    }
    }
    
    

    结果运行异常:
    在这里插入图片描述
    那么为什么会出现这样的结果呢?

    原因:这个新集合是由数组转换过来的,那么该集合就表示原来的数组,所以对集合的操作就是对数组的操作。那么添加元素会导致原数组扩容,那么就不能表示原来的数组了。所以不允许向该集合添加新元素了。

    下面就来测试一下是否改变集合中的元素,原数组元素也随之改变。

    import java.util.Arrays;
    import java.util.List;
    
    public class Test1 {
    	public static void main(String[] args) {
    		String [] strArr = {"刘雯","胡歌","杜鹃","邓伦"};//原数组元素
    		List<String> list = Arrays.asList(strArr);
    		System.out.println(list); 
    		list.set(3, "杨紫");//将集合中下标为3的元素替换为“杨紫”
    		System.out.println(list);//修改后的集合打印结果:[刘雯, 胡歌, 杜鹃, 杨紫]
    		//下面打印数组中的元素,检测数组元素是否改变
    		for (String Arr : strArr) {
    			System.out.println(Arr);
    			/*
    				打印结果:刘雯
                             胡歌
                             杜鹃
                             杨紫
    			*/
    	//结果说明:对这个由数组转化过来的集合进行操作会导致原数组的改变。	
    		}
    	}
    }
    

    怎么解决想往集合添加元素这个问题呢?

    方法一:我们通过实验知道数组转化为List是不能增删数据的,如果需要增删,可以利用空集合调用addAll方法将转化后的集合全部添加新集合就可以进行操作了。

    示例代码:

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class testArrayToList {
       public static void main(String[] args) {
    	String [] strArr = {"刘雯","胡歌","杜鹃","邓伦"};
    	List<String> list = Arrays.asList(strArr);
    	System.out.println(list); 
    	/*list.add(1,"杨紫");这样直接调用add方法会出现运行异常。
    	 *可以利用空集合调用addAll方法将转化后的集合全部添加新集合就可以进行操作了。
    	 */
    	 List<String> newList = new ArrayList<>();
    	 /*
    	  * tips:为什么右边这个尖括号中不写String呢?
    	  * 原因:从JDK1.7开始,右侧的尖括号内部可以不写内容,但是<>还是要写的。
    	  */
    	 newList.addAll(list);
    	 newList.add(1,"杨紫");
    	 System.out.println(newList);
    }
    }
    
    
    
    

    方法二(比较推荐的写法):

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class Test1 {
    	public static void main(String[] args) {
    			String [] strArr = {"刘雯","胡歌","杜鹃","邓伦"};
    			List<String> list = Arrays.asList(strArr);
    			System.out.println(list); 
    //		    List<String> newList = new ArrayList<>();
    //			newList.addAll(list);
    //		    newList.add(1,"杨紫");
    //		    System.out.println(newList);
    			 List<String> newList = new ArrayList<>(list);
    			 /*
    			  *所有的集合都提供了一个带有Collection类型参数的构造方法。
    			  *该构造方法称为:复制构造器
    			  *作用:在创建当前集合的同时,集合中包含给定集合中的所有元素。
    			  */
    			 newList.add(1,"杨紫");
    			 System.out.println(newList);
    		 
    		}
    	}
    
    

    二、集合转换为数组

    在这里插入图片描述

    查看API可知有这两个方法可以帮助我们很容易地将集合转换为数组。其中第二个方法是比较常用的,我们可以传入一个指定类型的数组,该数组元素类型与集合元素类型一致。返回值是转化后的数组,该数组会保留集合中的所有元素。
    eg:

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class testListToArray {
    	public static void main(String[] args) {
    		List<String> list = new ArrayList<String>();
        	list.add("刘雯");
        	list.add("杨紫");
        	list.add("胡歌");
        	String [] strArr =  list.toArray( new String[]{});
        	System.out.println(Arrays.toString(strArr));//[刘雯, 杨紫, 胡歌]
        	/*
        	 * 这里解释一下为什么要调用Arrays.toString()方法,因为这个集合转换后的数组类型为
        	 * String,是引用类型的。在这里我们并没有重写toString方法,如果直接打印strArr,
        	 * 你将会看到的是@散列码。所以要想看到数组中的内容有两种解决方案,一是你在代码中重写
        	 * toString方法,二是你直接使用Arrays.toString()方法。
        	 */
    	}
    }
    
    
    展开全文
  • Java字符串数组转集合方法

    千次阅读 2020-11-07 15:09:52
    数组转集合方法 使用 Arrays.asList(数组) 代码如下: //定义一个字符串 String zhuan = "1,2,3,4,5,6,7,8,9"; //分割字符串 String[] split = zhuan.split(","); // 把数组转集合 List<String> ...

    数组转集合方法

    使用 Arrays.asList(数组)
    代码如下:

    		//定义一个字符串
        	String zhuan = "1,2,3,4,5,6,7,8,9";
        	//分割字符串
            String[] split = zhuan.split(",");
            //        把数组转成集合
            List<String> stringList = Arrays.asList(split);
            //输出结果
            System.out.println(stringList);
    
    展开全文
  • 数组转集合集合转数组

    千次阅读 2016-04-06 13:59:40
    一、数组转集合: String[] array={"1","2","3","4"}; List<String> list = Arrays.asList(array); List arrList = new ArrayList(list); arrList.add("5"); 二、集合转数组: ...

    一、数组转集合:

            String[] array={"1","2","3","4"};

             List<String> list = Arrays.asList(array);

             List arrList = new ArrayList(list);

            arrList.add("5");

     

    二、集合转数组:

            List<String> list=new ArrayList<String>();

            list.add("aa");

            Object[] ary1 = list.toArray();

     

     

    展开全文
  • 数组转集合集合转数组、集合嵌套集合: 1、数组转集合,Arrays.aslist,转换后,也不能改变大小,但可以使用其他集合中的方法 基本数据类型的数组转换成集合,会将整个数组当作一个对象转换(集合中只能存储引用...

    数组转集合、集合转数组、ArrayList嵌套ArrayList:

    1、数组转集合,Arrays.aslist,转换后,也不能改变大小,但可以使用其他集合中的方法
    基本数据类型的数组转换成集合,会将整个数组当作一个对象转换(集合中只能存储引用类型,如int[],如果想将数组转成集合,可以使用它的包装类Integer)
    2、当集合转换数组时,数组的长度如果时小于等于集合的size,转换后的数组长度等于集合的size,如果数组的长度大于了size,分配的数组长度就和指定的长度一样

    
    1、数组转集合,Arrays.aslist,转换后,也不能改变大小,但可以使用其他集合中的方法
       基本数据类型的数组转换成集合,会将整个数组当作一个对象转换(集合中只能存储引用类型,如int[],如果想将数组转成集合,可以使用它的包装类Integer)
    2、当集合转换数组时,数组的长度如果时小于等于集合的size,转换后的数组长度等于集合的size,如果数组的长度大于了size,分配的数组长度就和指定的长度一样
    
    arrayListBetweenArrayList();  &&&嵌套
    arrToList();           &&&数组转集合
    collectionToArray();   &&&集合转数组
    
    
    package cn.njupt;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;
    
    //集合转数组
    public class Aslist {
    	public static void main(String[] args) {
    	 	arrayListBetweenArrayList();  //嵌套
    
    		arrToList();           //数组转集合
    
    		collectionToArray();   //集合转数组
    
    	}
    
    	public static void collectionToArray() {
    		ArrayList<Student> arr3 = new ArrayList();
    		arr3.add(new Student("吴彦祖", 23));
    		arr3.add(new Student("吴彦祖", 23));
    		arr3.add(new Student("林俊杰", 28));
    		arr3.add(new Student("陈冠希", 32));
    
    		Student[] stu2 = arr3.toArray(new Student[] {});// 这个括号里的是Student[] stu2 = new Student[2],这个样子的,只不过中间挤了个集合上了车
    
    		for (Student student : stu2) {
    			System.out.println(student);
    		}
    	}
    
    	public static void arrToList() {
    		int[] arr = { 11, 22, 33, 44, 55 };//只能当作一个数组引用来转成集合
    		String[] str = { "a", "b", "c" };   // 引用类型,可以转
    		Integer[] arr2 = { 11, 22, 33, 44, 55 };  //使用int的包装类Integer
    		
    		
    		List<int[]> list1 = Arrays.asList(arr);
    		List<String> list2 = Arrays.asList(str);
    		List<Integer> list3 = Arrays.asList(arr2);
    		for (Integer integer : list3) {  
    			System.out.println(integer);
    		}
    		
    
    		//System.out.println(list1);
    		//System.out.println(list1.get(0));
    		//System.out.println(list2);
    	}
    
    	public static void arrayListBetweenArrayList() {
    		ArrayList<ArrayList<Student>> list = new ArrayList<>();
    		ArrayList<Student> st1 = new ArrayList<>();
    		st1.add(new Student("吴彦祖", 23));
    		st1.add(new Student("吴亦凡", 24));
    
    		ArrayList<Student> st2 = new ArrayList<>();
    		st2.add(new Student("范冰冰", 33));
    		st2.add(new Student("桂纶镁", 34));
    
    		list.add(st1);
    		list.add(st2);
    
    		for (ArrayList<Student> a : list) {
    			for (Student b : a) {
    				System.out.println(b);
    			}
    
    		}
    	}
    
    }
    
    
    展开全文
  • 有关集合转数组与数组转集合的坑

    千次阅读 2020-10-29 11:04:52
    最近一直忙于 coding 和进行项目管理,就没啥时间更新 blog,今天上午趁有时间摸鱼,就简单总结一下有关集合转数组与数组转集合的坑。 问题起因1 在写代码的时候使用 toArray 方法 的时候就一直很好奇传入的长度为...
  • 数组转集合 在java中的数组有两种情况,一种是存放基本数据类型的数组,一种是存放对象类型的数组。 对于存放对象类型的数组,直接使用Arrays.asList方法即可 对于存放基本数据类型的,如果我们单纯使用Arrays.to...
  • List<Integer> test = java.util.Arrays.asList(new int[]{3, 5, 3, 4}); 为什么这个会报错,也会报错. List<Double> test = java.util.Arrays.asList(new Double[]{3, 5, 3, 4});...数组转集合后是不是不能添加元素.
  • 数组转换集合or集合转换成数组

    千次阅读 2019-04-22 22:51:52
    1.数组转换为集合 使用数组的工具类Arrays的方法asList 需要注意,只能转换为List集 public class ArrayToListDemo { public static void main(String[] args) { String[] array = {"one","two","three","four...
  • 集合转数组 数组转集合

    千次阅读 2018-08-25 21:33:15
    数组集合转换 数组变字符串 int[] arr = {4,1,8,5,3,5}; System.out.println(Arrays.toString(arr));//[4,1,8,5,3,5] 1、集合转数组 Object[] toArrays() E[] toArrays(E[] e); 有时候 需要让集合围成数组,...
  • 数组转集合 import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class CollectionsDemo02 { public static void main(String[] args) { /* List&lt;String&gt; ...
  • 集合转字符串 : Set set1 = new HashSet(); set1.add("a"); set1.add("b"); System.out.println(StringUtils.join(set1.toArray(), ","));//a,b List list1 = new ArrayList(); System.out.println(StringUtils....
  • 字符串数组转集合

    2019-07-09 18:00:56
    //controller中接收id数组, //html页面; var ids=$('#yourGrid').jqGrid('getGridParam','selarrrow'); //bean属性设置值,表达提交方式, $("#ids").val(JSON.stringify(ids)); //controller List<...
  • Android 数组转集合

    千次阅读 2017-03-20 16:51:12
    方法一: String[] newsItem = {"条目1","条目2","条目3"}; ArrayList list = new ArrayList Collections.addAll(list, newsItem); 方法二: String[] newsItem = {"条目1","条目2","条目3"} ...
  • 在使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合的相关方法,他的add/remove/clear方法都会抛出UnsupportedOperationException异常。说明: asList的返回对象是一个Arrays的内部类,并没有实现...
  • 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日 ...
  • js数组集合

    千次阅读 2018-12-06 22:29:00
    js数组集合可用于去重: 数组转集合 var arr = [55, 44, 65]; var set = new Set(arr); console.log(set.size === arr.length); console.log(set.has(65)); 集合转数组 var set = new Set([1, 2, 3...
  • 数组集合

    2018-10-15 20:57:34
    数组集合的PPT,讲述了数组集合的一些东西,是一份不可多得的素材,虽然有点简陋但还是希望能好好看
  • 由于在工作中经常用到... String数组转集合4. String数组转换成字符串:使用 Apache Commons 组件中的 commons-lang3.jar包5. String转换成byte[]或者byte[]转换成String 1. 基本类型字符串: 基本数据类型.t...
  • JAVA中数组集合的相互转换

    千次阅读 2020-05-13 10:29:42
    数组转集合: 1.遍历,最常用的方法,但是过程会繁琐一点 int arrs[] = {1, 2}; //1.遍历 List<Integer> list = new ArrayList<>(); for (int ele : arrs) { list.add(ele); } System.out.println...
  • string数组转换成int数组 Array.ConvertAll<string,int>(string的数组,int.Parse); 数组转字符串,以逗号分隔 string[] 数组 = post.体检编号数组;...list集合转字符串 public static...
  • 其一是通过数组下标来进行集合和元素的有无判断,其二就是差集的判断,这是比较头疼的,因为是差集,因此不能够通过循环其中一个数组来找全,而循环两个数组的话,代码冗余太多,理解困难。因此我们需要通过循环合集...
  • JAVA中的数组集合,以及互

    千次阅读 2013-12-01 12:16:41
    数组([]),长度固定,结构单一,访问速度快。 集合(Collection),是泛型接口,又分为列表List,队列Queue,Set和Map等。 List,有序,可重复;...数组转集合: Collection List = Arrays.asList(a
  • jdk1.8,数组集合、对象互

    千次阅读 2019-11-12 09:06:35
    1、数组转集合 1、定义整形数组:int[] arrayInt = {6,2,1}; List<Integer> integerList = Arrays.stream(arrayInt).boxed().collect(Collectors.toList()); 2、定义字符串数组:String[] str = {"1","2",...
  • 用java实现数组集合的相互转化

    千次阅读 2018-07-27 11:32:14
    很多时候API的方法只支持集合数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合集合转换成数组 可以把String换成其他类 List&lt;String&gt;list; String[] characters = list....
  • //chunk()集合拆分 ...//数组转为集合 $chunks = $collection->chunk(4);//chunk是拆分每一个数组的个数 $chunks->toArray(); //结果成数组 // [[1, 2, 3, 4], [5, 6, 7]] //collapse(...
  • JSON工具类 对象,数组集合,JSON互.pdf
  • int类型数组转换为集合,使用steam的装箱boxed()方法: List<Integer> collect = Arrays.stream(arr).boxed().collect(Collectors.toList()); 去重可以使用java8的steam流的distinct()方法。 import ...
  • 数组转换成List集合

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 819,461
精华内容 327,784
关键字:

数组转集合