【发布时间】:2018-03-01 03:40:15
【问题描述】:
如您所知,英文字母的前 6 个字母是 a, b, c, d, e, f。我想交换(即切换)第二个字母 b 和第五个字母 e。换句话说,我的目标是在代码执行后,我的编译器将打印以下内容:a, e, c, d, b,f。
当我在谷歌上搜索关于交换数组列表中的内容时,我一直在寻找包含 collections.swap 的示例。好吧,在课堂上我们没有了解这一点。我要求您不要将其包含在答案中。以下 2 行代码是我们提交的代码中应该包含的内容的非常简单的示例。第一个例子是public static void swap(int i, int j, ArrayList<String> myList). 第二个例子是void swap(int i, int j, ArrayList myList)
教授并不完全希望我们从头开始编写这段代码。她希望我们修复她手头给我们的代码,告诉我们我们需要为这项任务做些什么。 这是错误的代码:
import java.util.ArrayList;
public class abc{
public static void main(String[]args){
ArrayList<String> myList= new ArrayList();
myList.add("a");
myList.add("b");
myList.add("c");
myList.add("d");
myList.add("e");
myList.add("f");
swap(1,4,myList);
System.out.println(myList);
}
public static void swap(int i, int j, ArrayList<String> myList) {
String temp = myList.get(i);
myList.add(i, myList.get(j));
myList.add(j, temp);
}
(我试图给它一个灰色的背景,就像代码应该看起来的样子,但结果不是那样。)
此代码打印[a, e, b, c, b, d, e, f],但我写的第一段解释了我要打印的内容。我花了很长时间试图让它工作,但我做不到。请帮助我让 Jgrasp 做我想做的事情(请参阅第一段。)如果可能,请让您的代码看起来尽可能接近错误的代码,但我当然希望它是正确的。
【问题讨论】:
-
使用 ArrayList.set 而不是 add 在您的交换方法中,请参阅stackoverflow.com/questions/7452772/…