- Reaction score
- 1,667
Code:
package main;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Random;
public class Test {
public static void main(String[] arg) {
Random random = new Random();
ArrayList<Integer> list1 = new ArrayList<Integer>();
int temp;
int listSize = random.nextInt(100);
if (listSize % 2 != 0)
listSize++;
System.out.print("串列: ");
for (int i = 0; i < listSize; i++) {
temp = random.nextInt(10);
if (temp < 0)
temp *= -1;
list1.add(temp);
System.out.print(temp + " ");
}
System.out.println();
Collections.sort(list1, new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
if (a > b)
return 1;
if (a < b)
return -1;
return 0;
}
});
System.out.print("串列小到大: ");
for (int i : list1) {
System.out.print(i + " ");
}
System.out.println();
int size = list1.size() / 2;
ArrayList<Integer> sub1 = new ArrayList<Integer>();
ArrayList<Integer> sub2 = new ArrayList<Integer>();
int head = 0;
int tail = list1.size() - 1;
boolean flag = true;
for (int i = 0; i < size; i++) {
if (flag) {
sub1.add(list1.get(head));
sub1.add(list1.get(tail));
}
else {
sub2.add(list1.get(head));
sub2.add(list1.get(tail));
}
head++;
tail--;
flag = !flag;
}
int sum1 = 0;
int sum2 = 0;
System.out.print("A 串列: ");
for (int i : sub1) {
sum1 += i;
System.out.print(i + " ");
}
System.out.println();
System.out.print("B 串列: ");
for (int i : sub2) {
sum2 += i;
System.out.print(i + " ");
}
System.out.println();
System.out.println("A 串列: " + sum1 + " B 串列: " + sum2);
System.out.println("互減: " + (sum1 - sum2));
}
}