java数组

1.数组的声明和创建

动态创建:int [] array1=new int[数组的长度]; int[0]=1;...
静态创建:int [] array1={1,2,3,4,5};

数组还能存放对象

数组求最值

int [] array1={1,2,3,4,5};
int max=array1[0];
for (int i = 1; i < arr.length; i++) {//注意i=1
   if(array1[i]>max){
    max=array1[i];
  }
}

数组的反转

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

Arrays工具类
Arrays.sort()从小到大排序方法
Arrays.fill()数组填充方法:包头不包尾
Arrays.fill(arr1,头,尾,填充的值);

二维数组

int [][] arr1={ {1,2},
                {3,4},
                {5,6} };
 System.out.println(arr1.length);
//二维数组是:第一位是竖直,第二位是水平:竖直水平规则
   System.out.println(arr1[0][0]);
   System.out.println(arr1[0][1]);
   System.out.println(arr1[1][0]);
   System.out.println(arr1[2][0]);
    }

Java内存分析

  • 堆:new出来的对象和array
  • 栈:基本数据类型的值,引用对象的变量地址值
  • 方法区:static静态变量,所有的class

Scanner的使用

  1. new一个scanner对象
    Scanner scanner = new Scanner(System.in);//System.in为输入int类型
  2. 输出提示信息给使用者
    System.out.println("请输入第一个单词:");
  3. 用一个变量来接受scanner的值
    String a=scanner.next();
    //2,3步可以一直重复
    System.out.println("请输入第二个单词:");
    String b=scanner.next();
    ...
    4. 关闭Scanner
    scanner.close();

数组之冒泡排序

public static void main(String[] args) {
    //定义一个数组
    int[] arr1={1,3,2,4};
    //定义一个临时变量temp
    int temp=0;
    //最外层比较次数,三个数比2次即可--两两比较,所有-1
    for (int i = 0; i < arr1.length - 1; i++) {
        //定义一个flag提高效率,如果数组是有序的
        boolean flag=false;
        //两个值进行比较,减去每次循环后排好的一个数,和三个数比较只要2次所以-i-1
        for (int j = 0; j < arr1.length - 1 - i; j++) {
            if (arr1[j]>arr1[j+1]){
                temp=arr1[j+1];
                arr1[j+1]=arr1[j];
                arr1[j]=temp;
                flag=true;//只要有交换,则说明数组无序
            }
        }
        //如果数组元素之间没有进行交换的话,说明数组有序,比一次即可
        if (flag=false){
            break;
        }
    }

散列数组有点困惑

posted @ 2022-04-07 23:34  思考与感悟  阅读(265)  评论(0)    收藏  举报