1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java中List Set和数组之间转换方法总结

Java中List Set和数组之间转换方法总结

时间:2020-11-01 18:56:47

相关推荐

Java中List Set和数组之间转换方法总结

List转数组:

方法一:(笨办法硬换)

//array为待转换int[]int[] res = new int[list.size()];int i = 0;for(int num : list){res[i] = num;i++;}

方法二:(toArray)

//int类型,其他基本数据类型同理(必须是包装类对象)//底层源码逻辑://1.当传入的对象数组长度小于等于实际长度时,按实际长度copy一份//2.当传入的对象数组长度大于实际长度时,返回数组后面超过实际数据长度的位置会补null//因此,这里主要是为了传入类型,通常写实际数组长度或者写0都可以//重点!!!只有元素类型为引用数据类型的才能这样转,List<Integer>不能转成int[],但List<int[]>可以转成int[][],int[]数组类型也属于引用类型Integer[] res = list.toArray(new Integer[0]);//String类型String[] res = list.toArray(new String[0]);//int[]类型(转二维数组)List<int[]> list = new ArrayList<>();//第一个[]是list中int[]的数量,第二个[]是每个int[]的长度int[][] res = list.toArray(new int[list.size()][]);//不加参数就只能转换为Object类型数组Object[] res = list.toArray();

数组转List:

方法一:(笨办法硬换)

//array为待转换int[]List<Integer> list = new ArrayList<>();for(int num : array){list.add(num);}

方法二:(Arrays.asList)

/*!!!注意:asList的参数必须是对象数组,不能是基本类型数组。例如传入int类型数组,会把整个数组作一个元素,则前面必须用List<int[]>这种形式接收*///这样直接转换后的list不能调用add和remove等方法//这里创建的list是java.util.Arrays.ArrayList,并不是java.util.ArrayListList<Integer> list = Arrays.asList(array);//正确转换方式!List<Integer> list = new ArrayList<>(Arrays.asList(array));

方法三:(List.of)

//这样直接转换后的list不能调用add和remove等方法,jdk9以上才有List<Integer> list = List.of(array);

Set转数组:(和List一毛一样)

数组转Set:

方法一:(笨办法硬换)

//array为待转换int[],注意set会去重Set<Integer> set= new HashSet<>();for(int num : array){set.add(num);}

方法二:(Arrays.asList,同数组转List)

List转Set:

//list为待转换listSet<Integer> set= new HashSet<>(list);

Set转List:

//set为待转换setList<Inteter> list = new ArrayList<>(set);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。