黑马程序员技术交流社区

标题: 关于集合转换数组的问题 [打印本页]

作者: aion2013tian    时间: 2013-12-23 10:22
标题: 关于集合转换数组的问题
  1. public static void IO2String() {
  2.                 //创建一个缓冲读取流
  3.                 BufferedReader br = null;
  4.                 //创建一个接收键盘输入数据的字符串变量
  5.                 String str = null;
  6.                 //创建一个接收最终要输出的结果的字符串类型的数组集合
  7.                 List<String> as = new ArrayList<String>();
  8.                 //创建从键盘接收数据的IO流对象
  9.                 try {
  10.                         System.out.println("请输入数据:");
  11.                         br = new BufferedReader(new InputStreamReader(System.in));
  12.                         //循环读取键盘录入数据
  13.                         while((str = br.readLine()) != null) {
  14.                                 //如果读取到的录入数据是“exit”,就结束方法
  15.                                 if(str.equalsIgnoreCase("exit")) {
  16.                                         System.out.println("程序结束!!!!!");
  17.                                         break;
  18.                                 }
  19.                                 as = getLetterCount(str);
  20.                                 //利用集合的toArray方法,将集合转换成数组
  21.                                 String[] s = as.toArray(new String[as.size()]);//这个地方有疑问!!!!!
  22.                                 System.out.println("字母出现次数如下:");
  23.                                 for (int i = 0; i < s.length; i++) {
  24.                                         System.out.print(s[i] + "  ");
  25.                                 }
  26. //                                System.out.println(as);
  27.                                 System.out.println();
  28.                                 System.out.println();
  29.                                 System.out.println("请输入数据:");
  30.                         }
  31.                 } catch (IOException e) {
  32.                         // TODO Auto-generated catch block
  33.                         e.printStackTrace();
  34.                         System.out.println(e.toString());
  35.                 }
  36.         }
复制代码

其中的toArray()方法有两个,一个加参数的,一个不加参数的。
加参数的要求参数是运行时的数据类型,这一点很不明白,我创建的集合是String类型的,运行时也应该是String类型的,为什么还要new一个新的String类型的数组作为参数传入。
不加参数的返回的是Object[]数组,为什么不能强转成String[]数组




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2