A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1 String[] strs = {"string--01", "string--02", "string--03", "string--04"};
2 List<String> strsList = Arrays.asList(strs);
3 //以下语句输出:[string--01, string--02, string--03, string--04]  
4 System.out.println(strsList);
5
6 int[] ints = {2, 3, 4, 5};
7 List<int[]> intsList = Arrays.asList(ints);
8 //以下语句输出:[[I@c17164]  
9 System.out.println(intsList);
10
11 Integer[] intes = {2, 3, 4, 5};
12 List<Integer> intesList = Arrays.asList(intes);
13 //以下语句输出:[2, 3, 4, 5]  
14 System.out.println(intesList);

结论:

当使用Arrays工具类的asList方法将一个数组转换为列表时,若数组中的元素是引用类型,则数组中的元素就做为列表的元素;如果数组中的元素是基本类型,则数组做为列表的元素。

一句话:集合中只存放对象。

评分

参与人数 2技术分 +1 黑马币 +6 收起 理由
袁錦泰 + 1
王晓东 + 6 赞一个!

查看全部评分

8 个回复

正序浏览
{:soso_e127:}  我晕
回复 使用道具 举报
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.awt.List
        at Inc.main(Inc.java:8)
java.awt.List
你使用的是java.awt包的List,应该使用java.util包的List

评分

参与人数 1黑马币 +3 收起 理由
袁錦泰 + 3 很细心...

查看全部评分

回复 使用道具 举报
张頔 发表于 2012-6-3 22:48
import java.awt.List;
import java.util.*;//呵呵 所有有关的都导了

import java.awt.List;
把上面这个删除
回复 使用道具 举报
我觉得,首先,你既然想说明集合中只能存放对象,你就不应该用泛型,   如果你都指定泛型了,那肯定是你指定的泛型对象了;   不管是集合Set还是集合List都有一个add(Object obj) 方法,当你 传递的是一个引用时,   相应的集合就会指向引用所指的数据;   就上面的int[] ints = {2, 3, 4, 5} 当你用List<int[]> intsList = Arrays.asList(ints); 此时,  集合intsList就会开辟内存来存放数组ints[]的地址,就此也就指向了数组;
回复 使用道具 举报
import java.awt.List;
import java.util.*;//呵呵 所有有关的都导了

public class Inc  
{
      public static void main(String args[])
      {
              Integer[] intes = {2, 3, 4, 5};
               List intesList = (List)Arrays.asList(intes);
               //以下语句输出:[2, 3, 4, 5]  
               System.out.println(intesList);
      }
}
//没有提示错误  但是运行结果
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.awt.List
        at Inc.main(Inc.java:8)
回复 使用道具 举报
张頔 发表于 2012-6-3 22:13
求教
我运行了一下你的例子
int[] ints = {2, 3, 4, 5};

包是不是导错啦?
应该导入的是java.util.List
回复 使用道具 举报
张頔 发表于 2012-6-3 22:13
求教
我运行了一下你的例子
int[] ints = {2, 3, 4, 5};

包是不是导错啦?
应该导入的是java.util.List
回复 使用道具 举报
求教
我运行了一下你的例子
int[] ints = {2, 3, 4, 5};
List<int[]> intsList = Arrays.asList(ints);  // 在list出提示错误  怎么回事 该导的包都导了
                                      //改成 List intesList = (List)Arrays.asList(intes);后不提示错误但是 明显不对啊  
8//以下语句输出:[[I@c17164]  
9System.out.println(intsList);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马