[英]How do I swap two integers in an array, where my method takes in two integers and an array from main?
我在main中調用我的swap方法,但它沒有任何改變。 我究竟做錯了什么?
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個元素。
移動方法調用:-
swapper(3, 14, mainArr);
在您的for循環之外。 因為,如果循環運行even
數次,則不會影響陣列。
另外,您需要先初始化數組,然后才能實際交換元素。 在調用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] + " ");
}
這樣編寫代碼:
int mainArr[] = new int[20];
for(int i =0; i <mainArr.length;i++)
{
mainArr[i]=i;
}
swapper(3,14,mainArr);
將解決問題。 問題是您恰巧調用了swap偶數次,因此完全沒有效果。
您調用交換器的次數與數組中存在元素的次數相同。
public class swapInt
{
public static void main(String args[])
{
swap(new int[]{2,3,5,6,8},1,3);
}
public static void swap(int[]a,int i,int j)
{
int temp=a[i];
a[i]= a[j];
a[j]=temp;
for(int b=0;b<a.length;b++)
{
System.out.println(a[b]);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.