java数组
数组概念:
数组可以看成是多个相同类型数据的集合, 对这些数据的统一管理;
数组的变量是引用类型, 数组也本身也是个对象, ;
数组中的每个元素相当于该对象的成员变量;
数组的元素可以是任何的数据类型, 包括基本数据类型和引用类型。
声明方式:
类型[] 变量名 = new 类型[长度]
或者
类型 变量名[] = new 类型[长度]
声明数组时要使用 new 关键字,
1, 必须声明数组的长度, int[] a = new int[5];
2, 也可以直接定义数组的内容 int[] a = { 1, 2, 3 }
3, 数组的长度一旦被定义, 则不可再变
二维数组的初始化和定义: int[ ][ ] aa = new int[3][ ];
练习:
// 分数计算
500逢3退1
boolean[] bool = new boolean[500]; for (int i = 0; i < bool.length; i++) { bool[i] = true; } int com1 = 0; //记录数到队伍中的第几个 int com2 = 0; //数数123 int com3 = bool.length; //队伍中还剩多少人 while (com3 != 1) { if(bool[com1]) { com2++; if(com2 == 3) { bool[com1] = false; com2 = 0; com3--; } } com1++; if(com1 == 500) { com1 =0; } } for (int i = 0; i < bool.length; i++) { if(bool[i]) { System.out.println(i); } }
数组排序
冒泡排序
直接选择排序
反转排序
Arrays工具类
数组排序 Arrays.sort(arr); // 快速排序
填充数组 Arrays.fill(arr, 5); // 填充数组
数组的复制 Arrays.copyOf(arr, 5);
// 数组复制
如果新数组的长度不如被复制的数组长度长
有多少取多少
如果新数组的长度比较长, 不足的部分用0填充
数组的范围复制 Arrays.copyOfRange();
索引的范围, 包括开始, 不包括结束
比较两个数组是不是一样 Arrays.equals(int[] a, int[] b);
数组查询 binarySearch();---二分搜索法---必须先排序
如果有, 返回值是该数的索引
如果没有, 返回值是该数应该所在的索引加1的相反数
数组的范围查询