Java 将数组中的每个元素与其相邻元素交换
我需要写一个程序。该方法将整数数组作为输入,返回数组,其中每个值与其相邻元素交换。如果数组的计数为奇数,则最后一个元素不会被交换Java 将数组中的每个元素与其相邻元素交换,java,arrays,swap,Java,Arrays,Swap,我需要写一个程序。该方法将整数数组作为输入,返回数组,其中每个值与其相邻元素交换。如果数组的计数为奇数,则最后一个元素不会被交换 int[] array ={111,77,88,44,32,11,13,25,44} 结果: finalarray= 77,111,44,88,11,32,25,13,44 我尝试使用嵌套for循环,但没有得到它 public static int[] swap(int array[]) { for (int i = 1; i <
int[] array ={111,77,88,44,32,11,13,25,44}
结果:
finalarray= 77,111,44,88,11,32,25,13,44
我尝试使用嵌套for循环,但没有得到它
public static int[] swap(int array[]) {
for (int i = 1; i < array.length; i++) {
for (int j = i; j <= i; j++) {
int temp = array[i - 1];
array[i - 1] = array[j];
array[j] = temp;
}
}
for (int k = 0; k < array.length; k++) {
System.out.print(array[k] + " ");
}
//Desired output 17,111,44,88,11,32,25,13,44
return array;
}
public static void main(String args[]) {
int[] number = { 111, 17, 88, 44, 32, 11, 13, 25, 44 };
number = swap(number);
}
公共静态int[]交换(int数组[]){
for(int i=1;i 对于(int j=i;j到目前为止您尝试的代码在哪里
反正
for (int i = 0; i < array.length; i += 2) {
if(i+1 >= array.length) {
break;
}
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
for(int i=0;i=array.length){
打破
}
int temp=数组[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
int[]数组={111,77,88,44,32,11,13,25,44};
int[]输出=新的int[array.length];
对于(int x=0;x
您只需在数组中循环,并用交换的值填充新数组。首先,您可以像这样交换两个元素:
public void swap(int [] array , int firstIndex , int secondIndex){
int temp = array[firstIndex];
array[firstIndex] = array[secondIndex];
array[secondIndex] = temp;
}
//Now it's time to navigate over the array like this:
for(int i = 0 ; i < array.length -1;i+=2){
swap(array,i,i+1);
}
公共无效交换(int[]数组,int firstIndex,int secondIndex){
int temp=数组[firstIndex];
数组[firstIndex]=数组[secondIndex];
数组[secondIndex]=temp;
}
//现在是在阵列上导航的时候了,如下所示:
对于(int i=0;i
这应该可以做到
public static final <T> void swap (T[] a, int i, int j) {
T t = a[i];
a[i] = a[j];
a[j] = t;
}
public static final <T> void swap (List<T> l, int i, int j) {
Collections.<T>swap(l, i, j);
}
private void test() {
String [] a = {"Hello", "Goodbye"};
swap(a, 0, 1);
System.out.println("a:"+Arrays.toString(a));
List<String> l = new ArrayList<String>(Arrays.asList(a));
swap(l, 0, 1);
System.out.println("l:"+l);
}
公共静态最终无效交换(T[]a,int i,int j){
T=a[i];
a[i]=a[j];
a[j]=t;
}
公共静态最终无效交换(列表l、int i、int j){
集合。互换(l、i、j);
}
专用无效测试(){
字符串[]a={“你好”,“再见”};
互换(a,0,1);
System.out.println(“a:+Arrays.toString(a));
列表l=新的ArrayList(Arrays.asList(a));
交换(l,0,1);
System.out.println(“l:+l”);
}
您一次递增1个元素,因此您将交换1和2,然后交换2和3,而不是交换3和4。循环增量应为2是的,我忘记了,抱歉:(
public static final <T> void swap (T[] a, int i, int j) {
T t = a[i];
a[i] = a[j];
a[j] = t;
}
public static final <T> void swap (List<T> l, int i, int j) {
Collections.<T>swap(l, i, j);
}
private void test() {
String [] a = {"Hello", "Goodbye"};
swap(a, 0, 1);
System.out.println("a:"+Arrays.toString(a));
List<String> l = new ArrayList<String>(Arrays.asList(a));
swap(l, 0, 1);
System.out.println("l:"+l);
}