1.数组
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。
数(数据)组(一组)就是一组数据。
动态初始化
先声明数组
语法:数据类型数组名[]; 也可以数据类型[] 数组名;
int a[]; 或者int[] a;
创建数组
语法: 数组名=new 数据类型[大小];
a=new int[10];
静态初始化
数组使用注意事项和细节
- 数组是多个相同类型数据的组合,实现对这些数据的统一管理
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
- 数组创建后,如果没有赋值,有默认值
int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null - 使用数组的步骤1. 声明数组并开辟空间2 给数组各个元素赋值3 使用数组
- 数组的下标是从0 开始的。
- 数组下标必须在指定范围内使用,否则报:下标越界异常,比如 int [] arr=new int[5]; 则有效下标为0-4
- 数组属引用类型,数组型数据是对象(object)
值传递 引用传递的区别
数组拷贝
将int[] arr1 = {10,20,30}; 拷贝到arr2 数组, 要求数据空间是独立的.
public class Array01{
public static void main(String []args){
int[] arr1 = {10,20,30};
int[] arr2 = new int[arr1.length];
for(int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
arr2[0] = 100;
System.out.println("====arr1 的元素====");
for(int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);//10,20,30
}
System.out.println("====arr2 的元素====");
for(int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);//10,20,30
}
}
}
数组反转
public class Array01{
public static void main(String []args){
int[] arr1 = {1,2,3,4,5,6};
int n = arr1.length;
for (int i = 0, j = n-1 ; i < j; i++,j--){
int temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
for (int i = 0; i < n; i++){
System.out.println(arr1[i]);
}
}
}
冒泡排序
public class Array01{
public static void main(String []args){
int[] arr = {7, 3, 5, 2, 4, 6, 1};
int n = arr.length;
int temp;
for (int i = 0; i < n; i++){
for (int j = 0; j < n-i-1; j++){
if (arr[j] < arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < n; i++){
System.out.print(arr[i]+" ");
}
}
}
2.二维数组
动态初始化
- 语法: 类型[][] 数组名=new 类型[大小][大小]
- 比如: int arr[][]=new int[2][3];
静态初始化
int[][] arr = {{1,1,1}, {8,8,9}, {100}};
杨辉三角
public class Array01{
public static void main(String []args){
int[][] arr = new int[10][];
for (int i = 0 ; i < arr.length; i++){
arr[i] = new int[i + 1];
for (int j = 0; j < arr[i].length; j++){
if (j == 0 || j == arr[i].length - 1){
arr[i][j] = 1;
}else{
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
}
}
for (int i = 0 ; i < arr.length; i++){
for (int j = 0; j < arr[i].length ; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
注意事项
一维数组的声明方式有:
int[] x 或者int x[]
二维数组的声明方式有:
int[][] y 或者int[] y[] 或者int y[][]
1.bd
2.bule
3.输出1 3 5 7换行
4.插入元素