如何在特定数组列表中交换2个特定字母?

时间:2017-09-20 07:34:35

标签: java arraylist

如您所知,英文字母的前6个字母为.gitconfig。我想交换(即切换)第二个字母,即b和第五个字母,即e。换句话说,我的目标是在执行代码后,我的编译器将打印以下内容:[init] templatedir = /path/to/templatedir

当我谷歌关于在数组列表中交换内容时,我一直在寻找包含collections.swap的示例..在课堂上我们没有了解到这一点。我要求你不要在答案中加入。以下两行代码是我们提交的代码中应该包含的事物的非常简单的示例。第一个例子是a, b, c, d, e, f第二个例子是void swap(int i,int j,ArrayList myList)

教授并不想让我们从头开始编写这段代码。她希望我们修改她给我们的代码,告诉我们我们需要为这项任务做些什么。 这是错误的代码:

a, e, c, d, b,f

(我试图给出一个灰色的背景,就像代码应该看起来一样,但是这样做并不成功。)

此代码打印public static void swap(int i, int j, ArrayList<String> myList).,但我写的第一段解释了我要打印的内容。我花了这么长时间试图让它工作,我不能。请帮助我让Jgrasp做我想做的事情(请参阅第一段。)如果可能的话,请尽可能使代码看起来尽可能接近错误的代码,但我当然希望它是正确的。

4 个答案:

答案 0 :(得分:2)

使用List.set而不是在swap方法中添加,请参阅:Java ArrayList replace at specific index

public static void swap(int i, int j, ArrayList<String> myList) {
  String temp = myList.get(i);
  myList.set(i, myList.get(j));
  myList.set(j, temp);
}

答案 1 :(得分:1)

使用内置Collections.swap

替换

String temp = myList.get(i);
myList.add(i, myList.get(j));
myList.add(j, temp);

Collections.swap(myList, i , j);

答案 2 :(得分:0)

  

添加(E e)

     

将指定的元素追加到此列表的末尾(可选   操作)。

     

add(int index,E element)

     

将指定元素插入此列表中的指定位置   (可选操作)。

     

set(int index,E element)

     

用此替换此列表中指定位置的元素   指定元素(可选操作)。

    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.set(i, myList.get(j));
      myList.set(j, temp);
    }
}

答案 3 :(得分:0)

如果您想使用职位交换,可以使用以下内容:

import java.util.Collections;

ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");


// swapping
Collections.swap(list, 1, 3);

这会将第一个元素(b)与第三个(d)交换为[ a, d, c, b, e ]