黑马程序员技术交流社区

标题: 数组中怎样判断是否重复,可以用最基本的if判断加for循环,大家还没有其它方法实现? [打印本页]

作者: MagicBoy    时间: 2014-3-19 00:27
标题: 数组中怎样判断是否重复,可以用最基本的if判断加for循环,大家还没有其它方法实现?
public class Demo {
        public static void main(String[] args) {
                int []age = {1,2,3,4,5,6,5};
                for (int i = 0; i < age.length-1; i++) {//双层循环,定住一个,再考虑下一个!
                        for (int j = i+1; j < age.length; j++) {
                                if(age[i] == age[j]){
                                        System.out.println("有重复的!"+i+"  "+j);
                                        break;
                                }
                        }
                }
        }
}

作者: darkpiece    时间: 2014-3-19 00:39
可以转成集合去重。非常容易
作者: 郝大龙0104    时间: 2014-3-19 01:16
你可以再建一个容器    没有的存进去  有的话弃之    用这个方法需要其他的类   因为数组这个容器的容量不可变

或者采用Set集合的特性   存进的数据不能重复    你可以把数组的元素存进去   然后再把集合转变成数组。。
  1. public static void main(String[] args) {
  2.                
  3.                 int[] arr ={2,4,5,6,2,4};
  4.                
  5.                 HashSet<Integer> hs = moveElement(arr);
  6.                
  7.                 Integer[] arr1 = hs.toArray(new Integer[hs.size()]);
  8.                
  9.                 for (Integer in : arr1) {
  10.                         System.out.println(in);
  11.                 }
  12.                
  13.         }
  14.        
  15.         public static HashSet<Integer> moveElement(int[] arr)
  16.         {
  17.                 HashSet<Integer> hs = new HashSet<Integer>();
  18.                
  19.                 for(int i = 0; i<arr.length; i++)
  20.                 {
  21.                         hs.add(arr[i]);
  22.                 }
  23.                
  24.                 return hs;
  25.         }
复制代码


希望给你有所帮助


作者: MagicBoy    时间: 2014-3-19 14:27
郝大龙0104 发表于 2014-3-19 01:16
你可以再建一个容器    没有的存进去  有的话弃之    用这个方法需要其他的类   因为数组这个容器的容量不 ...

非常给力!




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