有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

交换数组java的两个邻域元素

我对java相当陌生,通常编写python代码,所以只要有助于我理解,你可以随意否决我

交换用户输入数组的两个邻域元素是否有更多更少的“javish”方法

目前我有:

public static void main(String[] args) {

        Scanner in = new Scanner(System.in);


      ArrayList<Integer> list = new ArrayList<>();
      System.out.println("Enter some numbers:");
      while (in.hasNextInt()) {
          list.add(in.nextInt());
      }


      System.out.println("ArrayList Before: "+ list);
      Collections.swap(list, 0, 1);
      System.out.println("ArrayList After: "+ list);
    }

这只改变了第一个和第二个,但是如果我想把3和4也改变成4和3,如此类推,有可能这样做吗


共 (2) 个答案

  1. # 1 楼答案

    你用过这些收藏品。从API中交换方法,根据API,交换3和4只需更改

    Collections.swap(list, 0, 1);
    

    行到Collections.swap(list, 3, 4);

    有关更多信息,请查看here(the API)

    编辑:作为对评论的回应,我会这样做

    for(int i = 0; i<list.size()-1; i+=2){
      System.out.println("ArrayList Before: "+ list);
      Collections.swap(list, i,i+1);
      System.out.println("ArrayList After: "+ list);
    }
    

    这将立即用后面的索引交换每个索引。但是,如果列表大小为奇数,则最后一个索引将永远不会与任何内容交换

  2. # 2 楼答案

    对于ArrayList,可以使用索引获取特定位置。例如,您可以使用

    list.get(i)        //where i is equal to the index you require
    list.set(i, x)     // where i is the index, and x is the value that you want to replace it with
    

    编辑:顺便说一句,祝您学习java好运,如果您对列表和集合感兴趣,请查看链接列表,它们类似于ArrayList,但在某些情况下更通用