Arrays.asList(param)方法中param的不同,方法的返回值不同的实例分析

博客分析了Arrays.asList(param)方法在接收到不同类型的参数(基本类型数组、对象类型数组、String数组、自定义对象数组)时返回值的差异。当param为基本类型数组时,返回的List大小始终为1;否则,返回值大小符合预期。结论强调了asList方法对于对象类型的参数表现正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="white-space:pre">		</span>System.out.println("Arrays.asList(param)的param类型是 :int[]--------------");
		int[] intArray1 = new int[]{1,2,3};
		List<int[]> intList = Arrays.asList(intArray1);
		System.out.println(intList.get(0)[0]);
		System.out.println(intList.get(0)[2]);
		System.out.println("intList.size():"+intList.size());
		
		System.out.println("Arrays.asList(param)的param类型是 :几个int类型的数字--------------");
		List<Integer> integerList1 = Arrays.asList(1,2,3);
		System.out.println("integerList1.size():"+integerList1.size());
		for (int int2: integerList1) {
			System.out.println(int2);
		}
		
		System.out.println("Arrays.asList(param)的param类型是 :Integer[]--------------");
		Integer[] integerArray2 = new Integer[]{1,2,3};
		List<Integer> integerList2 = Arrays.asList(integerArray2);
		System.out.println("integerList.size():"+integerList2.size());
		for (int int3: integerList2) {
			System.out.println(int3);
		}
		
		System.out.println("Arrays.asList(param)的param类型是 :char[]--------------");
		char[] charArray = new char[]{'a','b'};
		List<char[]> charList = Arrays.asList(charArray);
		System.out.println("charList.size():"+charList.size());
		System.out.println(charList.get(0)[0]);
		System.out.println(charList.get(0)[1]);
		
		System.out.println("Arrays.asList(param)的param类型是:几个char类型的字符--------------");
		List<Character> CharacterList1 = Arrays.asList('a','b','c');
		System.out.println("CharacterList1.size():"+CharacterList1.size());
		for(char c2 : CharacterList1){
			System.out.println(c2);
		}
		
		System.out.println("Arrays.asList(param)的param类型是 :String[]--------------");
		String[] s = new String[]{"1","2"};
		List<String> ss = Arrays.asList(s);
		System.out.println("ss.size():"+ss.size());
		for (String str: ss) {
			System.out.println(str);
		}
		
		System.out.println("Arrays.asList(param)的param类型是 :几个String类型的字符串--------------");
		List<String> ss2 = Arrays.asList("ab","bc","cd");
		System.out.println("ss2.size():"+ss2.size());
		for (String str: ss2) {
			System.out.println(str);
		}
		
		System.out.println("follow :Student Object---------------1");
		Student[] stuArray = {new Student(),new Student(),new Student(),new Student()};
		List<Student> stuList = Arrays.asList(stuArray);
		System.out.println("stuList.size():"+stuList.size());
		for (Student stu: stuList) {
			System.out.println(stu);
		}

程序运行后的结果

Arrays.asList(param)的param类型是 :int[]--------------
1
3
intList.size():1
Arrays.asList(param)的param类型是 :几个int类型的数字--------------
integerList1.size():3
1
2
3
Arrays.asList(param)的param类型是 :Integer[]--------------
integerList.size():3
1
2
3
Arrays.asList(param)的param类型是 :char[]--------------
charList.size():1
a
b
Arrays.asList(param)的param类型是:几个char类型的字符--------------
CharacterList1.size():3
a
b
c
Arrays.asList(param)的param类型是 :String[]--------------
ss.size():2
1
2
Arrays.asList(param)的param类型是 :几个String类型的字符串--------------
ss2.size():3
ab
bc
cd
follow :Student Object---------------1
stuList.size():4
name=yy age=0 score1=0
name=yy age=0 score1=0
name=yy age=0 score1=0
name=yy age=0 score1=0

依照程序结果分析:

当Arrays.asList(param)的param参数是基本类型的数组时,方法返回值的size总是1

当Arrays.asList(param)的param参数是基本类型对应的对象类型的数组时,方法返回值的size是我们期待的结果

当Arrays.asList(param)的param参数是String类型的数组时,方法返回值的size是我们期待的结果

当Arrays.asList(param)的param参数是自定义对象类型的数组时,方法返回值的size是我们期待的结果


结论:

1.当Arrays.asList(param)的param参数是基本类型的数组时,方法返回值的size总是1

2.当Arrays.asList(param)的param参数不是基本类型的数组时,方法返回值的size是我们期待的结果(不是基本类型包括String类型,对象类型,基本类型对应的对象类型)

所以,asList源码中T是对象类型时,返回结果才是我们期待的结果

public static <T> List<T> asList(T... a) { 
return new ArrayList<T>(a); 
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值