List集合与Arrays之间的转换问题

    List集合使我们经常使用到的集合,今天无聊时,查看了一下List的方法。其中有一个toArray()方法,这个方法可以讲List转换成Arrays数组。但是我们在吧Arrays转换成List的时候,我发现了一个问题。我使用额asList()的方法,吧Arrays转成List,但是我发现只要Arrays的数据变化时,List中的数据也跟着变化。

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class Test
{

	public static void main(String[] args)
	{
		String[] arr = {
					"111", "222", "333"};
		// List<String> arraylist = new ArrayList<String>();
		// arraylist = Arrays.asList(arr);
		List<String> linklist1 = new LinkedList<String>();
		List<String> linklist = new LinkedList<String>();
		linklist = Arrays.asList(arr);		//将Arrays==>List
		for (String s : linklist)		//将linklist赋值给linklist1
		{
			linklist1.add(s);
		}
		// 测试
		// String[] arr2 = (String[]) arraylist.toArray();
		String[] arr2 = (String[]) linklist.toArray();
		System.out.println("arr2长度" + arr2.length);
		for (String string : arr2)
		{
			System.out.println(string);
		}
		System.out.println("***********************");
		arr[2] = "444";
		System.out.println("数组arr:");
		System.out.println(linklist);
		System.out.println("数组arr2");
		for (String string : arr2)
		{
			System.out.println(string);
		}
		System.out.println("listlink1");
		System.out.println(linklist1);
	}
}

   其实我想表达的就是:我们在使用toArray()方法的时候没有任何问题,但是asList()的方法并不是将Arrays赋值给List集合,而只是将他的引用赋给了List。 就像上面表述的一样,在我们使用for-each将一个list赋值给另一个list后,无论怎样改变Arrays,都不会影响他的值了。所以以后再使用asList()的时候一定要小心!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值