我是靠谱客的博主 干净眼睛,最近开发中收集的这篇文章主要介绍java中list和数组的相互转换的多种方式1. 数组->list2. list->数组l,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java中list和数组的相互转换

  • 1. 数组->list
    • 方法一:使用for循环把数组元素加进list
    • 方法二:直接使用Arrays工具类下的asList()方法
    • 方法三:用ArrayList的构造方法和Arrays工具类下的asList()方法
    • 方法四:使用Collections.addAll()
    • 方法五:使用Stream中的Collector收集器
  • 2. list->数组l
    • 方法一:使用for循环
    • 方法一:使用for循环
    • 方法二:使用toArray()方法

1. 数组->list

方法一:使用for循环把数组元素加进list

public void test3(){
		//方法一:使用for循环把数组元素加进list
		String[] strings = {"aaa","bbb","ccc"};
		List<String> list = new ArrayList<String>();
		for (int i = 0; i <strings.length ; i++) {
			list.add(strings[i]);
		}
		System.out.println(list);
	}

方法二:直接使用Arrays工具类下的asList()方法

public void test3(){
		//方法二:直接使用Arrays工具类下的asList()方法
		//这不是最好的,asList()返回的列表的大小是固定的。
		//事实上,返回的列表不是java.util.ArrayList类,而是定义在java.util.Arrays中一个私有静态类java.util.Arrays.ArrayList
		//我们知道ArrayList的实现本质上是一个数组,而asList()返回的列表是由原始数组支持的固定大小的列表。
		//这种情况下,如果添加或删除列表中的元素,程序会抛出异常UnsupportedOperationException。
		//java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,但是不具有添加add()或删除remove()方法,所以调用add()方法会报错	
		String[] strings = {"aaa","bbb","ccc"};
		List<String> list = Arrays.asList(strings);
		//stringList.add("ddd");
		System.out.println(list);
	}

方法三:用ArrayList的构造方法和Arrays工具类下的asList()方法

public void test3(){
		//方法三:用ArrayList的构造方法和Arrays工具类下的asList()方法
		String[] strings = {"aaa","bbb","ccc"};
		List<String> list = new ArrayList<String>(Arrays.asList(strings));
		list.add("ddd");
		System.out.println(list);
	}

方法四:使用Collections.addAll()

public void test3(){
		//方法四:使用Collections.addAll()
		String[] strings = {"aaa","bbb","ccc"};
		List<String> list = new ArrayList<String>();
		Collections.addAll(list, strings);
		list.add("ddd");
		System.out.println(list);
	}

方法五:使用Stream中的Collector收集器

public void test3(){
		//方法五:使用Stream中的Collector收集器
		String[] strings = {"aaa", "bbb", "ccc"};
		List<String> list = Stream.of(strings).collect(Collectors.toList());
		list.add("ddd");
		System.out.println(list);
	}

2. list->数组l

方法一:使用for循环

public void test3(){
		//方法一:使用for循环
		List<String> list = new ArrayList<String>(Arrays.asList("aaa", "bbb", "ccc"));
		String[] strings = new String[list.size()];
		for (int i = 0; i <list.size() ; i++) {
			strings[i]=list.get(i);
		}
		for (int i = 0; i < strings.length; i++) {
			System.out.println(strings[i]);
		}
	}

方法一:使用for循环

public void test3(){
		//方法一:使用for循环
		List<String> list = new ArrayList<String>(Arrays.asList("aaa", "bbb", "ccc"));
		String[] strings = new String[list.size()];
		for (int i = 0; i <list.size() ; i++) {
			strings[i]=list.get(i);
		}
		for (int i = 0; i < strings.length; i++) {
			System.out.println(strings[i]);
		}
	}

方法二:使用toArray()方法

public void test3(){
		//方法二:使用toArray()方法
		List<String> list = new ArrayList<String>(Arrays.asList("aaa", "bbb", "ccc"));
		String[] strings = list.toArray(new String[list.size()]);
		for (int i = 0; i < strings.length; i++) {
			System.out.println(strings[i]);
		}
		
		//错误方式:list.toArray()返回的是Object[]数组,无法转型为String,会报类型转换异常
		//ArrayList<String> list3=new ArrayList<String>();
		//String strings[]=(String [])list.toArray();
	}

最后

以上就是干净眼睛为你收集整理的java中list和数组的相互转换的多种方式1. 数组->list2. list->数组l的全部内容,希望文章能够帮你解决java中list和数组的相互转换的多种方式1. 数组->list2. list->数组l所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部