一. 数组
1.数组声明
- 数组: 内存空间连续的一块区域,用来存储同一种数据类型的多个元素
重点: - 1,连续: 同一个数据类型
- 2,索引: 从零开始
数组声明
- 格式: 数据类型[] 数组名; 数组名其实就是一个变量名
- 定位数组的位置: 数据名[索引], 比如说第零个元素: 数组名[0]
2.数字使用
数组的长度 数组名.length
数组的索引 从0开始,最大的索引: 数组名.length-1
指定索引位置数组的元素:
查询:数组名[索引]
修改:数组名[索引] = 数值;
例子:
public static void main(String[] args) {
/* //第一种: 一般情况下,当我们不知道数据里面有什么内容的时候,我们会声明一个数组,然后再去赋值
int[] array = new int[5];
array[0] = 1;
array[1] = 3;
array[2] = 5;
array[3] = 6;
array[4] = 7;
//第二种
int[] array2 = new int[]{1, 3, 5, 6, 7};
//第三种, 虽然我们没有明确的指定数组的长度,但是一旦声明了以后,长度就固定了
int[] array3 = {1, 4, 5, 6, 7};
array3[5] = 10;
3.数组的遍历
1.索引: 从零开始,到数组的长度-1结束
2.数组的长度: 数组名.length
3.数组名[索引] 定位数组中的元素
例子:
public static void main(String[] args) {
/*int[] ages = {18, 20, 21, 22, 23, 24, 25, 26, 27};
int length = ages.length;//确定数组中有几个元素
System.out.println(length);
System.out.println(ages[5]);
for (int i = 0; i < ages.length; i++) {
System.out.println("索引:" + i + "值:" + ages[i]);
}
System.out.println(ages);*/
/*int[] ages = {24, 25, 34, 20, 24, 26, 27, 29, 22};
int length = ages.length;
System.out.println(length);
System.out.println(ages[5]);
for (int i = 0; i < ages.length; i++) {
System.out.println("索引:" + i + "值:" + ages[i]);
}
System.out.println(ages);*/
}
4.数组的工具类
Arrays.toString(数组名) 如果直接打印数组名得到的是一个内存地址,我们看不 懂。 就是将数组以字符串的方式打印出来。
Arrays.copyOf(数组名,复制的长度) 得到一个新的数组
Arrays.sort(数组名) 在原来的数组上进行排序
public static void main(String[] args) {
int[] ages = {4, 2, 71, 81, 9, 5, 3, 9};
// 一般在服务器上打印日志的时候,会使用到这个方法
System.out.println(Arrays.toString(ages));
//一般有自然排序的时候会用到这个方法
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));
//一般在数组扩容的时候,会使用到这个方法
int[] ints = Arrays.copyOf(ages, 10);
System.out.println(Arrays.toString(ints));
}
冒泡排序
例子:
public static void main(String[] args) {
int[] arrays = {11, 4, 5, 7, 9, 34, 54, 35};
for (int i = 0; i < arrays.length - 1; i++) {
for (int j = 0; j < arrays.length - 1 - i; j++) {
if (arrays[j] > arrays[j+1]) {
int temp = arrays[j + 1];
arrays[j + 1] = arrays[j];
arrays[j] = temp;
}
}
}
System.out.println(Arrays.toString(arrays));
/*for (int i = 0; i < arrays.length - 1; i++) {
for (int j = 0; j < arrays.length - 1 - i; j++) {
if (arrays[j] < arrays[j+1]) {
int temp = arrays[j + 1];
arrays[j + 1] = arrays[j];
arrays[j] = temp;
}
}
}
System.out.println(Arrays.toString(arrays));*/
}