重新排列后用另一个列表中的数字替换一个列表
Posted
技术标签:
【中文标题】重新排列后用另一个列表中的数字替换一个列表【英文标题】:Replace a list with the numbers in another list after rearranging 【发布时间】:2016-06-11 20:31:44 【问题描述】:我在处理下一件事时遇到了麻烦:我有一个包含数字的数组列表,我想反转列表中的数字,例如,如果它有 1 2 3,则替换数组列表中的值with 3 2 1. 为此,我创建了一个名为 reordenar() 的方法;它将第一个数组列表中的最后一个数字放在第二个数组列表的第一个位置。完成后,我不知道如何让第一个数组列表的数字被第二个替换。这是我写的代码。
package firstPackage;
import java.util.*;
public class firstMain
public static Object reordenar(List n)
List secondList = new ArrayList();
for (int i=0; i<n.size(); i++)
secondList.add(n.size()-i);
return n;
public static void main(String[] args)
// TODO Auto-generated method stub
List firstList = new ArrayList();
firstList.add("1");
firstList.add("2");
firstList.add("3");
firstList.add("7");
firstList.add("5");
firstList.add("6");
firstList.add("9");
reordenar(firstList);
System.out.println(firstList);
该代码仅打印出正常顺序,而不是重新排列的顺序。非常感谢您的帮助。
【问题讨论】:
这是写你自己的反向方法的作业吗?如果没有,我会看看Collections.reverse(firstList)
另外,你看过这个吗? ***.com/questions/10766492/…
是的,这是关于编写我自己的反向方法,否则我会使用该方法(我之前用谷歌搜索过)。无论如何谢谢:)
哦,我刚刚看到Collections.reverse之后有一个迭代方法。非常感谢,效果很好。
【参考方案1】:
您不需要 2 个ArrayList
s 来完成这项工作。只需迭代 ArrayList
的一半元素并使用临时变量在第一个和最后一个、第二个和第二个形式之间交换位置等。
此外,使用ArrayList
而不给出它将包含的特定类型也不是一个好主意,例如:
List<String> firstList = new ArrayList<String>();
前者(没有特定类型)暗示Object
代表您的ArrayList
,这通常太宽而无用。
【讨论】:
非常感谢,这行得通,虽然使用两个 ArrayList 对我来说更直观,因为我不习惯迭代以上是关于重新排列后用另一个列表中的数字替换一个列表的主要内容,如果未能解决你的问题,请参考以下文章