[关闭]
@wangyupu 2020-06-02T08:49:25.000000Z 字数 2474 阅读 66

java基础第七章二维数组

java基础


本课目标

  1. 掌握冒泡排序算法
  2. 使用Arrays类操作数组
  3. 理解二维数组的使用

冒泡排序

  1. 每次比较相邻两数
  2. 小的交换到前面
  3. 每轮结束后最大的数交换到最后

用二重循环实现冒泡排序

  1. ##用二重循环将5个数字升序排序
  2. 5个数字如何存放
  3. 数组,数组.length = 5
  4. 控制比较多少轮
  5. 外层循环,循环变量i
  6. 控制每轮比较多少次
  7. 内层循环,循环变量j
  8. 交换数据

冒泡排序小结

  1. 冒泡排序速记口诀(升序)
  2. N个数字来排队
  3. 两两相比小靠前
  4. 外层循环N-1
  5. 内层循环N-1-1
  6. 思考
  7. 如何使用冒泡排序实现5个数字的降序排列?
  8. 使用冒泡排序对n个数字排序,共蚍较几次可得到最终
  9. 结果?

使用Arrays为数组排序

  1. 使用java.util包提供的工具类
  2. Arrays提供操作数组的方法,如;排序、查询
  3. Arrays类方法,对数组进行升序排列
  4. Arrays.sort(数组名);

Arrays类

方法名称 说明
boolean equlals(arrayl,array2) 比较array1和array2两个数组是否相等
sort(array) 对数组array的元素进行升序排列
String tingraray) 将一个数组aray转换成一一个字符串
void fill(array,val) 把数组rray所有元素都赋值为val
copyOf(aray,length) 把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int binarySearch(array, val) 查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)

多维数组

  1. 三维及以 上的数组很少使用
  2. 主要使用二维数组
  3. 从语法.上Java支持多维数组
  4. 从内存分配原理的角度讲,只有-维数组

二维数组

  1. <数据类型> [][] 数组名;或者<数据类型>数组名[][ ];
  2. int [ ][ ] scores;//定义二维数组
  3. scores=new int[5][50];//分配内存空间
  4. //或者
  5. int [ ][ ] scores = new int[5][50];
  6. 定义二维数组时,要定义最大维数
  7. int [][] scores = new int[5][];

二维数组与内存2-1

  1. int( s=new int[3][5];

二维数组与内存2-1

  1. int( s=new int[3][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}};```

老师讲课实录

  1. import java.util.Scanner;
  2. public class test1 {
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8. /*int[] a;//声明数组
  9. a = new int[5]; //分配空间
  10. a[0] = 8;
  11. a[1] = 9;
  12. a[2] = 10;
  13. a[3] = 11;
  14. a[4] = 12;
  15. System.out.println("a[0]==="+a[0]);*/
  16. /* double []scores = new double[10];
  17. scores[0] = 11;
  18. scores[1] = 12;
  19. scores[2] = 13;
  20. scores[3] = 14;
  21. scores[4] = 15;*/
  22. //double []scores = new double[]{11,22,33,47,44};
  23. //double []scores = new double[10];
  24. //数组长度为4 for
  25. /*double []scores = {11,22,33,44,66,7,8,7,8,7,1,2,6,4};
  26. //scores.length 获取数组长度
  27. int leng = scores.length;
  28. for(int i =0;i<leng;i++){
  29. System.out.println(scores[i]);
  30. }*/
  31. double []scores = new double[3];
  32. Scanner sc = new Scanner(System.in);
  33. //循环录入
  34. for(int i = 0;i<scores.length;i++){
  35. scores[i] = sc.nextDouble();
  36. }
  37. //循环打印
  38. for(int i = 0;i<scores.length;i++){
  39. System.out.println(scores[i]);
  40. }
  41. }
  42. }

双重数组

  1. import java.util.Scanner;
  2. public class test4 {
  3. public static void main(String[] args) {
  4. String [][] subusers = new String[2][3];
  5. /* subusers[0][0] = "和开箱";
  6. * String [][] s = {{"","",""},{"","",""}};
  7. System.out.println(subusers[1][2]);
  8. */
  9. Scanner sc = new Scanner(System.in);
  10. for(int i = 0;i<subusers.length;i++){
  11. System.out.println("***********************");
  12. System.out.println("开始录入第"+(i+1)+"行学生");
  13. for(int j = 0;j<subusers[i].length;j++){
  14. System.out.println("姓名:");
  15. subusers[i][j] = sc.next();
  16. }
  17. }
  18. System.out.println("-----------------------------");
  19. for(int i = 0;i<subusers.length;i++){
  20. System.out.println("第"+(i+1)+"行学生");
  21. for(int j = 0;j<subusers[i].length;j++){
  22. System.out.println(subusers[i][j]);
  23. }
  24. }
  25. }
  26. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注