比较列表中的元素并交换它们。JAVA
嗨,我已经为一个解决方案工作了好几天了,我一直在试图自己解决这个问题,但我就是做不到 我有一个ArrayList,我想交换其中的元素。但我想把清单对半比较。假设列表中有8个元素,我想比较列表前半部分的第一个元素和列表后半部分的第一个元素。 因此,将列表[0]与列表[4]一起列出,如果4大于0,我想交换它们,然后我想增加0和1,将列表的一半增加1,直到i=4。 我必须从命令行运行它比较列表中的元素并交换它们。JAVA,java,arraylist,compare,swap,Java,Arraylist,Compare,Swap,嗨,我已经为一个解决方案工作了好几天了,我一直在试图自己解决这个问题,但我就是做不到 我有一个ArrayList,我想交换其中的元素。但我想把清单对半比较。假设列表中有8个元素,我想比较列表前半部分的第一个元素和列表后半部分的第一个元素。 因此,将列表[0]与列表[4]一起列出,如果4大于0,我想交换它们,然后我想增加0和1,将列表的一半增加1,直到i=4。 我必须从命令行运行它 import java.util.Arrays; import java.util.ArrayList; im
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.util.array;
导入java.util.ArrayList;
导入java.util.Scanner;
导入java.util.Collections;
公共级天车{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
ArrayList nums=新的ArrayList();
while(input.hasNextInt()){
add(input.nextInt());
}
锦标赛(nums);}
公共静态无效锦标赛(ArrayList列表){
int midPoint=list.size()/2;//返回列表大小一半的索引号
对于(int i=0;i
到目前为止,这就是我所拥有的,但是当我从命令行运行它时,它只返回一个普通的列表,我完全被难住了。我更愿意使用循环而不是集合方法,因为它不是我特别熟悉的编程风格。看看
中点
-它在循环中从不改变。您不断地将第i个元素(假设“if”条件为true)与中点进行交换。在中点
之后没有任何元素被触摸过。看看中点
-它在循环中从不改变。您不断地将第i个元素(假设“if”条件为true)与中点进行交换。在中点
之后没有任何元素被触摸过