我有一份作业,我需要帮助。 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等。
答案 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);