第七章 二维数组

冒泡排序法

思路:每次比较相邻两数,小的交换到前面,每轮结束后最大的数交换到最后

口决:N 个数字来排队,两两相比小靠前,外层循环 N-1,内层循环 N-1-I

示例:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int arr[]=new int[5];
    int terr=0;
    System.out.println("输入5个整数");
    for (int i = 0; i < 5; i++) {
        
        arr[i]=sc.nextInt();
    }
    for (int i1 = 0; i1 < 5; i1++) {
        for (int j = 0; j < i1; j++) {
            if (arr[j]>arr[i1]) {
                terr=arr[i1];
                arr[i1]=arr[j];
                arr[j]=terr;
            }
        }
        System.out.println();
​
    }
    for (int i2 = 0; i2 < 5; i2++) {
        System.out.print(arr[i2]+" ");
    }
}
Arrays为数组排序

java.util包提供的工具类

Arrays类提供操作数组的方法,如:排序、查询

Arrays类的sort()方法: 对数组进行升序排列

语法:Arrays.sort(数组名);

使用Arrays类的各种方法
方法名称说明
boolean equals(array1,array2)比较array1和array2两个数组是否相等
sort(array)对数组array的元素进行升序排列
String toString(array)将一个数组array转换成一个字符串
void fill(array,val)把数组array所有元素都赋值为val
copyOf(array,length)把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int binarySearch(array, val)查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)
 System.out.println("----equals比较两个数组值是否相等-------");
        int nums1[] = new int[]{11,22,33};
        int nums2[] = new int[]{11, 22, 333};//比较两个数组是否相等
        boolean boo1 = Arrays.equals(nums1, nums2);
        System.out.println(boo1);
        System.out.println("-----sort数组升序排列--—-----");
        int num3[] = {11, 99, 22, 44, 33, 88};
        Arrays.sort(num3);//数组升序排列//将数组转换为string
        //将数组转换为(Num3);//数组字符串
        System.out.println(Arrays.toString(num3));
        System.out.println("-----fill将数组中的值全部替换为val---");
        String names[] = {"张三", "李四", "王五"};
        //将所有数值替换为马六
        Arrays.fill(names, "马六");
        System.out.println(Arrays.toString(names));
        System.out.println("-------copyOf复制一个数组并给定新的长度---");
        int ages1[] = {18, 19, 20};
        int ages2[] = Arrays.copyOf(ages1, 10);
        System.out.println(Arrays.toString(ages2));
        System.out.println(" -----binarySearch查询数组中是否存在指定内容存在返回下标(此数组必须升序)-----");
        int arrs[] = {10, 20, 50, 80, 30};
        Arrays.sort(arrs);
        System.out.println(Arrays.toString(arrs));
        //查询数组中是否存在指定内容存在返回下标(此数组必须升序)
        int index = Arrays.binarySearch(arrs, 30);
        System.out.println(index);

二维数组

语法:<数据类型> 数组名; 或者 <数据类型> 数组名 ;

int [ ][ ] scores; //定义二维数组

scores=new int[5][50]; //分配内存空间

//或者

int [ ][ ] scores = new int[5][50];

定义二维数组时,要定义最大维数

int [ ][ ] scores = new int[5][];

书写方式

定义并赋值:

一:int[][] scores=new int[][]{ { 90, 85, 92, 78, 54 }, { 76, 63,80 }, { 87 }};

二:int scores[][] = {{ 90, 85, 92, 78, 54 }, { 76, 63,80 }, { 87 } };

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值