我一直在尝试找出如何交换数组列表中的项目;所以首先我使用以下代码创建了一个数组列表:
import java.util.ArrayList;
import java.util.List;
public class ListADT {
public static void main (String[] args){
List <String> myList = new ArrayList<String>(); {
myList.add("A");
myList.add("B");
myList.add("C");
myList.add("D");
myList.add("E");
System.out.println(myList);}}}
这会在控制台上返回 [A,B,C,D,E]。
然后我打开了另一个类并使用了我在网上找到的这段代码并尝试进行修改以使其工作,但它一直没有工作。
import java.util.List;
public class swap {
//precondition: x and y are >= 0 and < mylist.size()
//precondition: mylist is not null
void swap(int x, int y, List <String> myList) {
String s = myList.get(x);
myList.add(x, myList.get(y));
myList.add(y, s);
System.out.println(myList);
} }
如果我尝试用列表中元素的位置编号替换 x 和 y,那么只会导致许多新问题。正如您可能知道的那样,我是这方面的初学者,任何帮助将不胜感激。
最佳答案
看一下 ArrayList API,特别是 set() 方法。 http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#set(int,%20E)
public E set(int index, E element)
“用指定元素替换此列表中指定位置的元素。”
尝试该方法而不是 add(),可能如下:
- 您可以从位置 x 获取并存储字符串(就像您正在做的那样),
- 然后将位置 y 处的值设置到位置 x 中,
- 最后,设置您之前存储的字符串中位置 y 的值。
基本上,每当您遇到困难时,浏览 API 看看是否有任何其他方法可以使任务变得更容易一点,这不会有什么坏处。我们没有人完全熟记 API,并且回顾该文档对每个人来说都是很常见的事情。嗯,几乎每个人。
关于java - 如何交换列表中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30970169/