2 qq 31930741 qq_31930741 于 2016.03.27 21:08 提问

关于java中消除数组中的重复值的问题,麻烦大家了

public static void getLength(int[] arr){
int count=0;
int i;
for(i=0;i<arr.length-1;i++){
if(arr[i]==arr[i+1])
count++;
arr[i]=arr[i+1];

}
for(int x=0;x<arr.length-count-1;x++){
System.out.print(arr[x]+" ");
}
}

这串代码还是有问题,麻烦大家用简洁点的语言写一下。我是初学者。。谢谢大家了

7个回答

PinkLine
PinkLine   2016.03.27 22:49

写了半天,应该是对的吧,
public class Demo1 {
public static void main(String[] args) {
int arr[] = { 1, 1, 2, 3, 2, 4, 1, 1, 1, 2, 3 };
arr = test(arr);
for (int i : arr) {
System.out.print(i + " ");
}
}

public static int[] test(int[] arr) {
    int len = arr.length;
    for (int i = 0; i < len; i++) {
        for (int j = i + 1; j < len; j++) {
            if (arr[i] == arr[j]) {
                {
                    arr[j] = arr[len - 1];
                    len--;
                }
            }
        }
    }
    int arr1[] = new int[len];
    for (int i = 0; i < len; i++) {
        arr1[i] = arr[i];
    }
    if (len == arr.length) {
        return arr1;
    }
    return test(arr1);
}

}

qq_31930741
qq_31930741 谢谢你啊
一年多之前 回复
qq_31930741
qq_31930741 谢谢你啊
一年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.27 21:31

循环体中if条件后面的两句话应该都是这个条件分支的语句吧,用花括号把这两句括起来。

luochoudan
luochoudan   Ds   Rxr 2016.03.27 21:35

简单点,参考.
int[] array = { 1, 1, 3, 2, 1 };
HashSet hashSet = new HashSet();
for (int i = 0; i < array.length; i++) {
hashSet.add(array[i]);
}
System.out.println(hashSet);

qq_31930741
qq_31930741 我们还没学到这个HashSet hashSet = new HashSet();方法,能不能写个简单点的。谢谢啊
一年多之前 回复
wanweiaiaqiang
wanweiaiaqiang   2016.03.27 21:38

给你说一个思路吧,每次使用一个数和剩余的数进行比较,如果相同就直接删除掉。

qq_31930741
qq_31930741 恩 谢谢啊
一年多之前 回复
qq_31930741
qq_31930741   2016.03.27 22:28

写了一下,还是写不出来。能不能写一下。。谢谢

PinkLine
PinkLine   2016.03.28 09:41

昨晚始终觉得写和别扭,到睡觉时终于想通了,不需要用递归的
public static int[] test(int[] arr) {
int len = arr.length;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
{
arr[j] = arr[len - 1];
len--;
j--;
}
}
}
}
int arr1[] = new int[len];
for (int i = 0; i < len; i++) {
arr1[i] = arr[i];
}
return arr1;
}

CSDNXIAON
CSDNXIAON   2016.03.30 11:27

java中实现向数组或list中添加不重复的值
java 判断一个数组是否有重复值
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片