数组
数组的概念:
- 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器
- 数组既可以存储基本数据类型,也可以存储引用数据类型
- 数组是一组相关数据的集合,一个数组实际上就是一连串的变量.
数组的声明
- 格式: 数据类型[] 数组名; 数组名其实就是一个变量名
- 定位数组的位置: 数组名[索引] ,比如说第0个元素: 数组名[0]
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,7,9};
// 第三种, 虽然我们没有明确的指定数组的长度,但是一旦声明了以后,长度就固定了
int[] array3 = {1,3,5,7,9};
// array3[5] = 10;
String[] names = {"王工", "冀工", "金工", "吴工" };
int[] chars = {120,'a','韩'};
数组的遍历:
- 1 索引:从0开始,到数组的长度-1结束
- 2 数据的长度: 数组名.length
- 3 数组名[索引] 定位数组中的元素
public static void main(String[] args) {
int[] ages = {18,19,20,21,22,23,24,25,26,27,28,29,30};
int length = ages.length;
System.out.println(length);
System.out.println(ages[1]);
for (int i = 0; i < ages.length; i++) {
System.out.println("索引:"+i+" 值:"+ages[i]);
}
System.out.println(ages);
}
使用数组的步奏
- 声明数组
申请内存空间
int[] a;
- 分配内存空间
申请到的内存空间分几块
a = new int[5];
- 数组元素赋值
将信息放在内存空间中
a[0] = 8;
- 使用数组元素
使用内存空间中的信息
a[0] = a[0]*10;
Arrays的使用
- Arrays.toString(array) 数组的打印
public static void main(String[] args) {
int[] ages = {55,68,5,3,29,555,888,648};
System.out.println(Arrays.toString(ages));
- Arrays.sort(array); 数组的排序
会在原来的数组上修改
public static void main(String[] args) {
int[] ages = {55,68,5,3,29,555,888,648};
System.out.println(Arrays.toString(ages));
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));
- Arrays.copyOf(要复制的数组,指定新数组的长度)
会得到一个新的数组
public static void main(String[] args) {
int[] ages = {55,68,5,3,29,555,888,648};
System.out.println(Arrays.toString(ages));
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));
int[] ints = Arrays.copyOf(ages,20);
System.out.println(Arrays.toString(ints));
}
冒泡排序
如果有一个需求是要把数组全部元素正序排列怎么办 ? 很简单,执行一次是移动一位,那我只要让他循环移动所有位置的元素就可以了
public static void main(String[] args) {
int[] arrays = {11, 6, 3, 8, 99, 25, 43};
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));
}