数组中元素如何交换与打乱

发布于:2025-05-13 ⋅ 阅读:(12) ⋅ 点赞:(0)

1 问题

在本周学习了java基础语法中的数组,在学习数组后,我们会遇到关于数组中元素的倒序,交换,和无序打乱等问题,在Python中我们可以用list的方法进行元素倒序,那么我们在java中应该如何实现数组用元素的倒序和元素的打乱呢?

2 方法

使用循环,Random类,下标索引实现

  1. 关于元素的倒序交换,我们定义两个变量表示数组的第一下标和最后下标,在进行交换后.两个下标分别++,--,直到第一个下标大于第二个下标为止,如此便实现了元素的倒序交换;

  2. 关于元素的打乱,思想和元素的交换没什么区别,只不过在这里使用第一下标,和一个随机下标,进行元素交换,;

  3. 两个方法代码的重复度较高,所以要套用循环来实现,这里我们使用for循环.同时,在元素的打乱中,我们需要用到Random类,利用Random方法来随机生成一个下标,进行元素的打乱

  4. 在进行元素交换的时候需要定义一个第三方变量来接受第一个变量的数据,不然会造成变量的覆盖;

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1 

Courier New字体,23磅行间距
鼠标右键,选择无格式粘贴。
package online.array.practice;
//交换数组中的数据
//交换前 1,2,3,4,5
//交换后 5,4,3,2,1
public class practice07 {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = {1, 2, 3, 4, 5};
        //利用循环去交换变量
        for (int i = 0,  j = arr.length-1;
        i < j;
        i++, j--){
            int temp = arr[i]; //定义一个第三方变量接受变量
            arr[i] = arr[j];
            arr[j] = temp;
        }
        for (int i = 0; i <arr.length ; i++) {
            System.out.print (arr[i] + " ");
        }
    }
}
---------------------------------------------------------------------
package online.array.practice;
import java.util.Random;
//打乱数组中的元素(随机打乱)
public class practice08 {
    public static void main(String[] args) {
        Random r = new Random();
        int[] arr = {1, 2, 3, 4, 5};
        for (int i = 0; i < arr.length; i++) {
            int j = r.nextInt(arr.length);
            if(j != i){
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

结语

针对数组中元素的倒序交换和无序打乱问题,提出使用for循环加下标索引进行替换的方法,通过本次实验,证明该方法是有效的.此外还可以使用while循环,do...while循环,以及其他的方法实现。


网站公告

今日签到

点亮在社区的每一天
去签到