我在java中有一个整数数组列表,我正在尝试排序,我正在使用collection.sort方法,由于某种原因,我在排序时得到每个数字的2个。这是代码
import java.util.ArrayList;
import java.util.Scanner;
import java.io.*;
import java.util.Collections;
public class ArraySort{
static ArrayList<Integer> numberList = new ArrayList<Integer>();
static ArrayList<Integer> numberList2 = new ArrayList<Integer>();
static ArrayList<Integer> numberList3 = new ArrayList<Integer>();
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter the name of the file that contains the first list");
String file1 = input.nextLine();
System.out.println("Enter the name of the file that contains the second list");
String file2 = input.nextLine();
ArraySort x = new ArraySort(file1, file2);
ArrayList<Integer> mergedlist = x.merge();
System.out.print("The first list is ");
print(x.numberList);
System.out.println();
System.out.print("The second list is ");
print(x.numberList2);
System.out.println();
System.out.print("The new combine list is ");
print(mergedlist);
System.out.println();
System.out.print("The sorted combine list is ");
print(bubbleSort(mergedlist));
System.out.println();
System.out.println("Enter the key for the split: ");
int key = input.nextInt();
System.out.println("The list has been split into 2 lists");
System.out.print("List 1 is ");
print(numberList);
System.out.println();
System.out.print("List 2 is ");
print(numberList2);
}
public ArraySort(){
Scanner s = new Scanner(System.in);
try {
s = new Scanner (new File ("list1.txt")).useDelimiter("\\s+");
} catch(FileNotFoundException fnfe) {
System.out.println("file not found");
}
while (s.hasNext()) {
if (s.hasNextInt()) { // check if next token is an int
numberList.add(s.nextInt());
} else {
s.next(); // else read the next token
}
}
try {
s = new Scanner (new File ("list2.txt")).useDelimiter("\\s+");
} catch(FileNotFoundException fnfe) {
System.out.println("file not found");
}
while (s.hasNext()) {
if (s.hasNextInt()) { // check if next token is an int
numberList2.add(s.nextInt());
} else {
s.next(); // else read the next token
}
}
}
public ArraySort(String x, String y){
Scanner s = new Scanner(System.in);
try {
s = new Scanner (new File (x)).useDelimiter("\\s+");
} catch(FileNotFoundException fnfe) {
System.out.println("file not found");
}
while (s.hasNext()) {
if (s.hasNextInt()) { // check if next token is an int
numberList.add(s.nextInt());
} else {
s.next(); // else read the next token
}
}
try {
s = new Scanner (new File (y)).useDelimiter("\\s+");
} catch(FileNotFoundException fnfe) {
System.out.println("file not found");
}
while (s.hasNext()) {
if (s.hasNextInt()) { // check if next token is an int
numberList2.add(s.nextInt());
} else {
s.next(); // else read the next token
}
}
}
public static ArrayList<Integer> bubbleSort(ArrayList<Integer> numbers) {
Collections.sort(numbers);
return numbers;
}
public static void print(ArrayList<Integer> numbers){
System.out.println();
for (int i = 0; i < numbers.size(); i++){
System.out.print(numbers.get(i) + " ");
}
}
public static ArrayList<Integer> merge(){
for( int i = 0; i < numberList.size(); i++) {
numberList3.add(numberList.get(i));
}
for( int j = 0; j < numberList2.size(); j++) {
numberList3.add(numberList2.get(j));
}
return numberList3;
}
public static void splitList(int x){
numberList.clear();
numberList2.clear();
for(int i=0;i<numberList3.size();i++){
if(numberList3.get(i)<=x){
numberList.add(numberList3.get(i));
}
else{
numberList2.add(numberList3.get(i));
}
}
}
}
这是我运行它时的输出:
Enter the name of the file that contains the first list
list1.txt
Enter the name of the file that contains the second list
list2.txt
The first list is
13 25 34 67 56 10 20 27 2 5 1 45 59
The second list is
73 29 14 87 72 100 200 127 22 15 19 145 159 78
The new combine list is
13 25 34 67 56 10 20 27 2 5 1 45 59 73 29 14 87 72 100 200 127 22 15 19 145 159 78
The sorted combine list is
1 2 5 10 13 14 15 19 20 22 25 27 29 34 45 56 59 67 72 73 78 87 100 127 145 159 200
Enter the key for the split:
19
The list has been split into 2 lists
List 1 is
13 25 34 67 56 10 20 27 2 5 1 45 59
List 2 is
73 29 14 87 72 100 200 127 22 15 19 145 159 78
我不知道为什么会这样