数组的基本概念和作用
数组:相同数据类型的元素的集合
每个数据称为一个数组元素,可以通过它们的下标进行访问
数组本身是引用数据类型,也就是对象;但是数组可以存储基本数据类型,也可以存储引用数据类型
数组的声明和创建
声明:
一: 数据类型 [] 数组名 例如 int [] a //建议使用第一种,防止与数据类型混淆
二: 数据类型 数组名 [] 例如 int a []
创建:
一: 指定长度 int [] arr = new int[10] 动态初始化,包含默认初始化
二: 将其初始化 int [] arr = new int [] {1,2,3,4,5}
三: 将二进行简写 int [] arr = {1,2,3,4,5} 静态初始化,创建 + 赋值
获取数组长度:
通过 数组名.length访问
int[] a = {2, 6, 9, 45, 21, 3, 7};
System.out.println(a.length);//输出的是数组的长度
数组的访问与迭代
访问 :通过数组名[访问的元素地址]
int[] a = {2, 6, 9, 45, 21, 3, 7}; a[0]; a[1];
注意: 数组的索引是从零开始的,数据类型为整型
数组的迭代:
//for循环
int[] a = {2, 6, 9, 45, 21, 3, 7};
for (int i = 0; i < a.length - 1; i++) {
System.out.println(a[i]);
}
//增强for循环
int[] a = {2, 6, 9, 45, 21, 3, 7};
for (int i:a) {
System.out.println(i);
}
数组排序
冒泡排序:
代码如下:
public class Maopao {
public static void main(String[] args) {
int[] a = {3,7,5,4,2,6,};
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] > a[j + 1]) {
a[j] = a[j] ^ a[j + 1];
a[j + 1] = a[j] ^ a[j + 1];
a[j] = a[j] ^ a[j + 1];
}
}
System.out.println(Arrays.toString(a));//输出每一次排序后的结果
}
}
}
选择排序:
public class Xuanze {
public static void main(String[] args) {
int [] arr = {5,2,9,87,32,46,15};
Xuanze.print(arr);
}
public static void print(int [] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if (arr[i] > arr[j]){
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}
}
System.out.println(Arrays.toString(arr));
}
}
}
二维数组
定义: 二维数组的每一个元素还是一个一维数组
int a [] [] = {{1,2,3},{4,5,6},{7,8,9}}
声明: int [] [] a 或者 int a [] []
创建: int [] [] a = new int [5] [5] ; int [] [] b = {{1,2,3},{4,5,6},{7,8,9}} ; int [] [] c = new int [] []{{1,2,3},{4,5,6},{7,8,9}}
迭代:
public static void print(){
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
}