黑马程序员技术交流社区

标题: HashSet的遍历问题 [打印本页]

作者: 柳雷    时间: 2012-7-23 19:05
标题: HashSet的遍历问题
本帖最后由 柳雷 于 2012-7-23 19:25 编辑

这个遍历有问题
  1. import java.util.HashSet;
  2. import java.util.Random;


  3. public class Test {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 HashSet hs=new HashSet();
  10.                 while(hs.size()<10){
  11.                         hs.add(new Random().nextInt(10));
  12.                 }
  13.                 Object[]obj=hs.toArray();
  14.                 for(int i=0;i<obj.length;i++){
  15.                         System.out.println((String)obj[i]);
  16.                 }
  17.                
  18.         }

  19. }
复制代码
运行结果
我用另外一种遍历方法


做的都头晕了。求指教

作者: 李东升    时间: 2012-7-23 19:19
给你看我改的。。就改了一点。。。
  1. public static void main(String []args){
  2.                 HashSet hs=new HashSet();
  3.         while(hs.size()<10){
  4.                 hs.add(new Random().nextInt(10));
  5.         }
  6.         Object[]obj=hs.toArray();
  7.         for(int i=0;i<obj.length;i++){
  8.                 System.out.println(obj[i].toString());
  9.         }
  10.         Iterator i=hs.iterator();
  11.         while(i.hasNext()){
  12.                 String tmp=i.next().toString();
  13.                 System.out.println(tmp);
  14.         }
  15.       
  16. }
复制代码
有些类型是不能强制转换成String,但是有toString()方法转换成String。
作者: 魏-玉-彪    时间: 2012-7-23 19:24
为什么没有创建 Iterator 对象?

191031cc1wjeueps2dzpxh.png (13.12 KB, 下载次数: 37)

191031cc1wjeueps2dzpxh.png

作者: 柳雷    时间: 2012-7-23 19:24
李东升 发表于 2012-7-23 19:19
给你看我改的。。就改了一点。。。有些类型是不能强制转换成String,但是有toString()方法转换成String。 ...

嗯,这个设计真是搞笑啊,既然有toString方法为什么不能强制转换String呢。
算是个知识点,记住了
作者: 魏-玉-彪    时间: 2012-7-23 19:28
String不是基本类型,强转不行吧




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