Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中切换两个带编号的数组_Java_Arrays - Fatal编程技术网

如何在Java中切换两个带编号的数组

如何在Java中切换两个带编号的数组,java,arrays,Java,Arrays,假设我有一个这样的数组[[5,6],[7,8]] 我想运行一个方法或其他东西,使其成为[[6,5],[8,7]] public class test { public static void main(String[] args) { List<List<Integer>> numlist = new ArrayList<>(); List<Integer> somelist = new ArrayList<>

假设我有一个这样的数组
[[5,6],[7,8]]

我想运行一个方法或其他东西,使其成为
[[6,5],[8,7]]

public class test {

  public static void main(String[] args) {

    List<List<Integer>> numlist = new ArrayList<>();

    List<Integer> somelist = new ArrayList<>();
    somelist.add(5);
    somelist.add(6);
    numlist.add(somelist);

    List<Integer> somelist2 = new ArrayList<>();
    somelist2.add(7);
    somelist2.add(8);
    numlist.add(somelist2);

    // created [[5,6], [7,8]]
    System.out.println(numlist);

    }
}
公共类测试{
公共静态void main(字符串[]args){
List numlist=new ArrayList();
List somelist=new ArrayList();
添加(5);
添加(6);
numlist.add(somelist);
List somelist2=新的ArrayList();
附表2.加入(7);
2.增加(8);
numlist.add(somelist2);
//创建[[5,6],[7,8]]
System.out.println(numlist);
}
}
我并不是真的使用java,但在python中,我会迭代
numlist
,并使用元组将
numlist[I][0],numlist[I][1]=numlist[I][1],numlist[I][0]
I
作为iter编号


在Java中我将如何做到这一点

这里有一个在java的Collections类中使用reverseOrder方法的解决方案

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class test {

    public static void main(String[] args) {

        List<List<Integer>> numlist = new ArrayList<List<Integer>>();

        List<Integer> somelist = new ArrayList<Integer>();
        somelist.add(5);
        somelist.add(6);
        Integer[] aa = new Integer[somelist.size()];
        Arrays.sort(somelist.toArray(aa), Collections.reverseOrder());
        somelist.clear();

        for(int i  =0;i<aa.length;i++)
        {
            somelist.add(aa[i]);
        }
        numlist.add(somelist);

        List<Integer> somelist2 = new ArrayList<Integer>();
        somelist2.add(7);
        somelist2.add(8);
        aa = new Integer[somelist2.size()];
        Arrays.sort(somelist2.toArray(aa), Collections.reverseOrder());
        somelist2.clear();

        for(int i  =0;i<aa.length;i++)
        {
            somelist2.add(aa[i]);
        }


        numlist.add(somelist2);

        // created [[6, 5], [8, 7]]
        System.out.println(numlist);

    }
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.Collections;
导入java.util.List;
公开课考试{
公共静态void main(字符串[]args){
List numlist=new ArrayList();
List somelist=new ArrayList();
添加(5);
添加(6);
整数[]aa=新整数[somelist.size()];
sort(somelist.toArray(aa),Collections.reverseOrder());
somelist.clear();
对于(int i=0;i你也可以这样做:

List<List<Integer>> result = new ArrayList<List<Integer>>();
for (List<Integer> list : numlist) {
    result.add(new ArrayList<Integer>(Arrays.asList(list.get(1), list.get(0))));
}
// created [[6,5], [8,7]]
System.out.println(result);
List result=new ArrayList();
用于(列表:numlist){
添加(新的ArrayList(Arrays.asList(list.get(1)、list.get(0)));
}
//创建[[6,5],[8,7]]
系统输出打印项次(结果);

temp=x[0];x[0]=x[1];x[1]=temp;
,即标准的非Java特定值交换。或者更确切地说,因为它们是列表,而不是数组:
temp=x.get(0);x.set(0,x.get(1));x.set(1,temp);
。或者更简单一些:
x.add(x.remove(0));
,它将第一个元素移到末尾。你无法逐字将英语翻译成俄语。如果你这样做,你将失去意义。上面提到的代码是有效的,但你必须知道数组和列表之间的区别,然后才能对它们做任何有意义的事情。