从Array中找出正负数?

时间:2016-01-28 10:58:46

标签: java arrays

我有一份作业,我需要帮助。 int [] array = {12,23,-22,043,545,-4,-55,43,12,0,-99,-87} 我必须制作两个数组。首先是积极的,第二个是负面和重复的nubers。我不能使用ArrayList。

int [] array = {12,23,-22,0,43,545,-4,-55,43,12,0,-999,-87};

       for(int i=0;i<array.length;i++){   
          if(array[i]>0){
              System.out.println("Positive:"+array[i]);               
          }
          else if 
               (array[i]<0){
               System.out.println("Negative:"+array[i]);   
           }
           for (int j = i + 1; j < array.length; j++) {
            if (array[j] ==array[i]) {
                 System.out.println("Dup:"+array[j]);

    }

}
       }
}

RES IS:运行: 阳性:12 DUPLI:12 阳性:23 阴性:-22 DUPLI:0 阳性:43 DUPLI:43 阳性:545 阴性:-4 阴性:-55 阳性:43 阳性:12 负:-999 阴性:-87 建立成功(总时间:0秒)  但我不知道 我如何得到这个Postive:12,23,0,43,545等。

2 个答案:

答案 0 :(得分:1)

这个怎么样:

public void test() {
    int[] array = {12, 23, -22, 043, 545, -4, -55, 43, 12, 0, -99, -87};
    List<Integer> positive = new ArrayList<>();
    List<Integer> negative = new ArrayList<>();
    List<Integer> duplicate = new ArrayList<>();
    for (int i = 0; i < array.length; i++) {
        int n = array[i];
        // Simple check for +ve/-ve
        if (n >= 0) {
            positive.add(n);
        } else {
            negative.add(n);
        }
        // Check for duplicates.
        for (int j = i + 1; j < array.length; j++) {
            if (array[j] == n) {
                duplicate.add(n);
            }
        }
    }
    System.out.println("+ve - " + positive);
    System.out.println("-ve - " + negative);
    System.out.println("dup - " + duplicate);
}

请记住,您的教授可以完全和开放地访问此答案,甚至可以在SO处开设帐户。请务必完全理解此代码,否则您将无法学习本课程的这一部分。

答案 1 :(得分:0)

尝试理解代码并回答您的教授,

 int[] array={12,23,-22,043,545,-4,-55,43,12,0,-99,-87};
   List<Integer> postiveNumbers=new ArrayList<Integer>();
    List<Integer> negativeNumbers=new ArrayList<Integer>();
    List<Integer> duplicateNumbers=new ArrayList<Integer>();
    for(int i=0;i<array.length;i++){
        if(!(postiveNumbers.contains(array[i])||negativeNumbers.contains(array[i]))) {//checks whether it contains duplicates

            if (array[i] >= 0) {
                postiveNumbers.add(array[i]);
            } else if (array[i] < 0) {
                negativeNumbers.add(array[i]);
            }
        }
        else duplicateNumbers.add(array[i]);
    }

    System.out.println(postiveNumbers);
    System.out.println(negativeNumbers);
    System.out.println(duplicateNumbers);