2
您好我一直在努力尋找解決方案,我一直試圖找出自己的,但我不能。比較列表中的元素並交換它們。 Java
我有一個ArrayList,我想交換它中的元素。但我想比較一下列表中的一半。所以說,如果列表中有8個元素,我想比較列表前半部分的第一個元素和列表後半部分的第一個元素。 因此,列表[4]和列表[4],如果4大於0,我想交換它們,然後我想增加0和1,列表的一半一個,直到我= 4. 我有從命令行運行它。
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Collections;
public class TennisTournament {
public static void main (String [] args) {
Scanner input = new Scanner(System.in);
ArrayList <Integer> nums = new ArrayList<Integer>();
while (input.hasNextInt()) {
nums.add(input.nextInt());
}
tournament(nums); }
public static void tournament(ArrayList <Integer> list) {
int midPoint = list.size()/2; // returns the index number of half of the lists size
for (int i = 0; i < midPoint; i++) { // while is bigger than mid point, increment by one
if (list.get(i) < list.get(midPoint)) {
Collections.swap(list, i, midPoint);
System.out.print(list);
}
}
System.out.println(list); }
}
這是我到目前爲止,但是當我在命令行中運行它,它只是返回一個普通的列表,我完全難倒。我更願意使用循環而不是集合方法,因爲它不是我特別熟悉的編程風格。
在java中有LINq嗎? – 2012-04-01 00:18:16