java数组基础

Source

IDEA使用

IDEA是通过项目来管理java源码的,对我飘了,我嫌麻烦直接换IDEA了

快捷键

  1. ctrl + / 注释
  2. ctrl + alt + ↓ 复制当前行到下一行
  3. ctrl + alt + L 自动格式化
  4. alt + R 运行程序
  5. alt + insert 生成构造器
  6. ctrl + h 查看类的继承关系
  7. ctrl + b或者ctrl + 鼠标左键
  8. .var 自动分配变量名
  9. ctrl + d 删除当前行

模板

  1. main
  2. sout
  3. fori
  4. 自定义模板

数组

1. 定义

> + 静态赋值  ```int[] hens = {1,3,5,3,2,4,6,3}; ```
> + 动态赋值  ```int[] a = new int[5]; ```

2. 细节

> 1. 数组是多个类型相同的数据的集合,包括基本类型和引用类型,但是不能混用。
> 	2. 数组创建后如果没有赋值则会自动赋初始值。
> 	3. 使用数组要先定义,再赋值,然后使用。
> 	4. 数组的下标从0开始,且只能在范围内使用,不能越界。
> 	5. 数组是引用数据类型,属于对象。
> 6. 数组在赋值的时候默认赋的是地址。(类似于js的深浅拷贝)

3. 属性

length可以获取到数组的长度

4. 方法

数组拷贝(深拷贝,数据空间独立)

对数组进行遍历,逐元素拷贝。

		int[] a = {
    
      1,2,3};
        int[] b = new int[3];
        for (int i = 0; i < a.length; i++) {
    
      
            b[i] = a[i];
        }

数组翻转

逆序赋值

		int[] arr = {
    
      11,22,33,44,55,66};
        int temp = 0;
        int[] arr2 = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
    
      
            arr2[i] = arr[arr.length - 1 - i];
        }
        arr = arr2;//让原来的数组销毁

找规律

        int[] arr = {
    
      11,22,33,44,55,66};
        int temp = 0;
        for (int i = 0; i < arr.length/2; i++) {
    
      
            temp = arr[i];
            arr[i] = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = temp;
        }

数组扩容

创建一个新数组,将之前的数组拷贝进去,然后将新加入的值存进去,最后将以前的数组指向新的数组。

		int[] arr = {
    
      1,2,3};
        int[] arr2 = new int[arr.length + 1];
        for (int i = 0; i < arr.length; i++) {
    
      
            arr2[i] = arr[i];
        }
        arr2[arr.length] = 4;
        arr = arr2;

数组缩减

创建一个新数组,将除了被删减的元素存入,然后将以前的数组指向新的数组。

        int[] arr = {
    
      1,2,3,4};
        int[] arr2 = new int[arr.length - 1];
        for (int i = 0,j = 0; i < arr.length; i++) {
    
      
            if(i != 0){
    
      
                arr2[j] = arr[i];
                j++;
            }
        }
        arr = arr2;

冒泡排序

        int[] arr = {
    
      12,56,34,78,32,45};
        int temp = 0;
        for (int i = 0; i < arr.length; i++) {
    
      
            for (int j = 0; j < arr.length - i - 1; j++) {
    
      
                if(arr[j] > arr[j + 1]){
    
      
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

顺序查找

		String[] names = {
    
      "砂糖","清流","刻晴","蜜莓"};
        boolean flag = true;
        for (int i = 0; i < names.length; i++) {
    
      
            if(names[i] == "蜜莓"){
    
      
                System.out.println(i + "," + names[i]);
                flag = false;
            }
        }
        if(flag == true){
    
      
            System.out.println("找不到这人女孩子");
        }

二维数组

二维数组其实就是数组中的每个元素又是一个数组

1. 定义

二维数组的长度是行数

int[][] arr1 = {
    
      {
    
      0,0},{
    
      0,0}};
int[][] arr2 = new int[2][3];

2. 内存分配

二维数组的内存分配