如何交换数组中的两个整数,其中我的方法从 main 接收两个整数和一个数组? [英] How do I swap two integers in an array, where my method takes in two integers and an array from main?

查看:41
本文介绍了如何交换数组中的两个整数,其中我的方法从 main 接收两个整数和一个数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 main 中调用了我的交换方法,但它没有改变任何东西.我做错了什么?

I call my swap method in main, but it doesn't change anything. What am I doing wrong?

public static void main(String[] args){


    int mainArr[] = new int[20];

    for(int i = 0; i<mainArr.length; i++){
    swapper(3, 14, mainArr);
    System.out.print(i + mainArr[i] + " ");
    }
}


public static void swapper (int a, int b, int[] mainArr){
    int t = mainArr[a];
    mainArr[a] = mainArr[b];
    mainArr[b] = t;
}

我的代码收益

0, 1,  2, 3,...19 

在正常升序中,我希望它交换第 4 个和第 15 个元素.

in normal ascending order, where I want it to swap the 4th and 15th element.

推荐答案

移动方法调用:-

swapper(3, 14, mainArr);

在你的 for 循环之外.因为,如果你的循环运行 even 次,它不会影响数组.

outside your for loop. Since, if your loop runs even number of times, it will not affect the array.

此外,在实际交换元素之前,您需要先初始化数组.在调用 swapper 之前你需要这样做.

Also, you need to initialize your array first, before actually swapping the elements. That you would need to do before invoking swapper.

for(int i = 0; i<mainArr.length; i++){
    mainArr[i] = i;
}

swapper(3, 14, mainArr);

for(int i = 0; i<mainArr.length; i++){
    System.out.print(i + mainArr[i] + " ");
}

这篇关于如何交换数组中的两个整数,其中我的方法从 main 接收两个整数和一个数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆