黑马程序员技术交流社区
标题:
Arrays的asList方法的疑惑
[打印本页]
作者:
pphdsny3
时间:
2012-8-16 16:38
标题:
Arrays的asList方法的疑惑
import java.util.*;
public class ArraysDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] num = {1,4,21,3,44};
String[] arr = {"xzc","qwe","sada"};
List<Integer> list1 = Arrays.asList(num);
List<String> list2 = Arrays.asList(arr);
sop(list1);
sop(list2);
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
疑惑:为什么Arrarys.asList()这个方法用在List<String> list2 = Arrays.asList(arr);没有任何问题,但是List<Integer> list1 = Arrays.asList(num);就会报错
作者:
周瑞
时间:
2012-8-16 16:47
(1) 该方法对于基本数据类型的数组支持并不好,当数组是基本数据类型时不建议使用
(2) 当使用asList()方法时,数组就和列表链接在一起了.
当更新其中之一时,另一个将自动获得更新。
注意:仅仅针对对象数组类型,基本数据类型数组不具备该特性
import java.util.*;
public class ArraysDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] num = {1,4,21,3,44};//这是基本数据类型的数组,所以报错
String[] arr = {"xzc","qwe","sada"};//而String是引用类型的数据,所以可以正常执行
List<Integer> list1 = Arrays.asList(num);
List<String> list2 = Arrays.asList(arr);
sop(list1);
sop(list2);
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
作者:
黑马-郑鹏
时间:
2012-8-16 16:47
int[] num = {1,4,21,3,44}; //你这里定义的是int类型
String[] arr = {"xzc","qwe","sada"};
List<Integer> list1 = Arrays.asList(num); //而你用的泛型是Integer,所以不匹配
作者:
黑马-郑鹏
时间:
2012-8-16 16:53
import java.util.*;
public class ArraysDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer
[] num = {1,4,21,3,44};//把这里改成Integer就ok了
String[] arr = {"xzc","qwe","sada"};
List<Integer> list1 = Arrays.asList(num);
List<String> list2 = Arrays.asList(arr);
sop(list1);
sop(list2);
}
public static void sop(Object obj){
System.out.println(obj);
}
}
作者:
杨习平
时间:
2012-8-16 17:01
import java.util.Arrays;
import java.util.List;
public class Edd {
public static void main(String[] args) {
int [] num = {1,4,21,3,44};
String[] arr = {"xzc","qwe","sada"};
List<int[]> list1 = Arrays.asList(num);
sop(list1);
List<String> list2 = Arrays.asList(arr);
sop(list2);
}
public static void sop(Object obj){
System.out.println(obj);
}
}
这样可以吧
作者:
胡刚涛
时间:
2012-8-16 17:14
01.import java.util.*;
02.public class ArraysDemo {
03.
04. /**
05. * @param args
06. */
07. public static void main(String[] args) {
08. // TODO Auto-generated method stub
09. int[] num = {1,4,21,3,44};
10. String[] arr = {"xzc","qwe","sada"};
11.
12.
List<Integer> list1 = Arrays.asList(num);//改为 List<int[]r> list1 = Arrays.asList(num);编译可以通过但是还是不会打印出具体的数值,应为 Arrays在对int型的数组调用asList方法时,不会那么好用,建议你不要使用,你可以具体的去查一查张老师的视频在讲解基础加强时 有讲到。
13. List<String> list2 = Arrays.asList(arr);
14. sop(list1);
15. sop(list2);
16. }
17.
18. public static void sop(Object obj){
19. System.out.println(obj);
20. }
21.}
复制代码
作者:
黑马_许芸
时间:
2012-8-16 18:14
int 是原生类型,而integer是包装类型,integer里面包含了对 int原生类型的一系列操作,
所以编译器可以将integer当作 int 来使用,和int 不可以直接转化为integer类型。希望对你有用。
作者:
pphdsny3
时间:
2012-8-16 19:19
谢谢大家,还是看的不仔细呀!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2