java基础——第七章 二维数组

1、目标

掌握冒泡排序

使用Arrays类炒作数组

理解二维数组的使用

2、冒泡排序

如何实现数字升序排序

每次比较相邻的两数

小的交换到前面

每轮结束后最大的数交换到最后

2.1 使用二重数组实现升序排序

冒泡排序速记口诀(升序)

N 个数字来排队

两两相比小靠前

外层循环 N-1

内层循环 N-1-I

2.2 使用arrays为数组排序

使用java.util.Arrays类

java.util包提供的工具类Arrays类提供操作数组的方法,如:排序、查询Arrays类的sort()方法: 对数组进行升序排列

方法名称

说明

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中的下标(要求数组中元素已经按升序排列)

3、多维数组

三维及以上的数组很少使用

主要使用二维数组

从语法上Java支持多维数组

从内存分配原理的角度讲,只有一维数组

3.1二维数组

语法:

<数据类型> [ ][ ] 数组名; 或者 <数据类型> 数组名 [ ][ ];

二维数组实际上是一个以一维数组做为元素的一维数组

3.2 二维数组与内存

3.3 二维数组定义

定义并赋值

写法一:

int[][] scores = new int[][]{{1,2,3},{1,2,3}}

写法二:

int scores[][] = {{1,2,3,4},{1,2,3,4}}

练习

练习一、冒泡排列学员成绩

import java.util.Scanner;

// 按两次 Shift 打开“随处搜索”对话框并输入 `show whitespaces`,
// 然后按 Enter 键。现在,您可以在代码中看到空格字符。
public class Main {
public static void main(String[] args) {
double[] arr = new double[5];
double temp;
Scanner sc = new Scanner(System.in);
System.out.println("请输入无名学生的成绩");
for (int i= 0;i< arr.length;i++){
arr[i] = sc.nextDouble();
}
for (int i = 0;i< arr.length-1;i++){
for (int j = 0;j< arr.length-1-i;j++){
if (arr[j]<arr[j+1]){
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0;i< arr.length;i++){
System.out.println(arr[i]);
}
}
}

练习二 、arrays类排列字符

import java.util.Arrays;
import java.util.Scanner;

public class charsort {
public static void main(String[] args) {
char[] arr = {'a','c','e','w','t','b'};

Arrays.sort(arr);
char a;
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要查找的字符");
a = sc.next().charAt(0);
for (int i = 0;i< arr.length;i++){
if (a == arr[i]){
System.out.println("有该字符,是第" + (i+1)+"个");
}
}

}
}

练习三、显示班级学生总成绩

import java.util.Scanner;

public class exercise1 {
public static void main(String[] args) {
double[][] a = new double[3][5];
double[] num = new double[3];
Scanner sc = new Scanner(System.in);
for (int i = 0;i < a.length;i++){
for (int j = 0;j < a[i].length;j++){
System.out.print("请输入第" + (i+1) + "班,第" + j +"个学生的成绩:");
a[i][j] = sc.nextDouble();
num[i] += a[i][j];
}
}
for (int i = 0;i < num.length; i++){
System.out.println("请输入第" + (i+1) + "班的总成绩:" +num[i]);
}
}
}
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值