如何在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));
,它将第一个元素移到末尾。你无法逐字将英语翻译成俄语。如果你这样做,你将失去意义。上面提到的代码是有效的,但你必须知道数组和列表之间的区别,然后才能对它们做任何有意义的事情。