黑马程序员技术交流社区

标题: 从集合到数组,聪明的你有多少种方法 [打印本页]

作者: touch_world    时间: 2014-11-8 02:28
标题: 从集合到数组,聪明的你有多少种方法
  1. import java.util.*;
  2. public class ShowA {
  3.         //定义一个随机产生数字的函数范围在0-99之间
  4.                 public static int RamdonNum()
  5.                 {
  6.                         int num=(int)(Math.random()*100);
  7.                         while(num==100)
  8.                         {
  9.                                 num=(int)(Math.random()*100);
  10.                         }
  11.                         return num;
  12.                 }
  13.         public static void main(String[] args) {
  14.                 // 新建立一个容器类,给它添加10个整数
  15.                 HashSet<Integer> hs = new HashSet<Integer>();
  16.                 while(hs.size()!=10)
  17.                 {
  18.                         hs.add(RamdonNum());
  19.                 }
  20.                 //如果去遍历它
  21.                 Iterator<Integer> it = hs.iterator();
  22.                 while(it.hasNext())
  23.                 {
  24.                         System.out.println(it.next());
  25.                 }
  26.                 //这个时候由于没有角标,hashSet里面的元素就不能操作了?
  27.                 while(it.hasNext())
  28.                 {
  29.                         System.out.println(it.next());
  30.                 }
  31.                  
  32.                 int[] arr=(int[])al.toArray();该怎么办???

  33.         }

  34. }
复制代码

如题,我该怎么把,这些元素放到数组中,方便我操作
ps,hashSet设计成这样是为什么呀,不好操作呀,好像你去制作一个美女供大家欣赏,可是你却用凤姐做蓝本
作者: touch_world    时间: 2014-11-8 02:37
1楼用迭代器已经到了尽头该如何操作这个呀,那存在容器里的元素不是没用了么,这又没有返回第一个元素的操作
本来collection 里面提供了toArray方法,可是 返回的却是Object,而且不能向下转型成数组,按理说数组的数据结构和HashSet的数据结构根本不一样,是不能互相转,提供的toArray是一个上帝对象,根本不能操作了,那么toArray方法是怎么使用的,hashSet是不是有特定的用途的呀
作者: wf111sxwf    时间: 2014-11-8 11:28
collection的 toArray方法有一个是可以转换成指定类型的数组吧 toArray(T[] a)
          返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
作者: touch_world    时间: 2014-11-8 13:35
wf111sxwf 发表于 2014-11-8 11:28
collection的 toArray方法有一个是可以转换成指定类型的数组吧 toArray(T[] a)
          返回包含此 coll ...

嗯 Integer[] a=hs.toArray(new Integer[10]);
                 for(int i=0;i<10;i++)
                 {
                         System.out.println(String.valueOf(a));
                 }
是我弄错了




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