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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 石马 中级黑马   /  2014-5-18 20:12  /  995 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 石马 于 2014-5-18 20:42 编辑

下面是我做的一个试题,功能删除重复元素。第一个是我没学for循环增强的时候写的,输出结果是正确的,但我在改用了for循环增强之后,输出结果却不正确了,这是为什么呢。恳请各位指点。
  1. import java.util.*;
  2. public class Test7 {
  3.         public static void main(String[] args){

  4.                 Integer[] arr={4,2,4,6,1,2,4,7,8};
  5.                 System.out.println(Arrays.toString(arr));
  6.                 HashSet<Integer> hs=new HashSet<Integer>();//利用HashSet的不允许重复性质去除重复元素
  7.                 for(int i=0;i<arr.length;i++){//将数组转换成HashSet集合
  8.                         hs.add(arr[i]);
  9.                 }
  10.                 arr=hs.toArray(new Integer[hs.size()]);//将HashSet集合转换为数组
  11.                 System.out.println(Arrays.toString(arr));//打印新数组
  12.         }
  13. }
复制代码
  1. import java.util.*;
  2. public class Test7 {
  3.         public static void main(String[] args){

  4.                 Integer[] arr={4,2,4,6,1,2,4,7,8};
  5.                 System.out.println(Arrays.toString(arr));
  6.                 HashSet<Integer> hs=new HashSet<Integer>();//利用HashSet的不允许重复性质去除重复元素
  7.                 for(int i:arr){//将数组转换成HashSet集合
  8.                         hs.add(arr[i]);
  9.                 }
  10.                 arr=hs.toArray(new Integer[hs.size()]);//将HashSet集合转换为数组
  11.                 System.out.println(Arrays.toString(arr));//打印新数组
  12.         }
  13. }
复制代码

4 个回复

倒序浏览
本帖最后由 多一点 于 2014-5-18 20:37 编辑

  for(Integer i:arr){//将数组转换成HashSet集合                                 
                                }     
     //   hs.add(arr);   改成         hs.add(i);       这个i不再代表数组的length
回复 使用道具 举报
多一点 发表于 2014-5-18 20:31
for(Integer i:arr){//将数组转换成HashSet集合                                 
                                }     
     //   ...

非常感谢- -。瞧了半天没瞧出来:)
回复 使用道具 举报
石马 发表于 2014-5-18 20:38
非常感谢- -。瞧了半天没瞧出来

正常 的
回复 使用道具 举报
学习了....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马