java—— 一维数组

一维数组

1、 数组常用的定义方式

类型 数组名= new 类型[数组长度]
类型 数组名 = {数组元素}

2、、增强for

一般用于对集合或者数组的遍历,用类型+变量的组合去接受集合或者数组中的每一个元素,临时复制给类型+变量的组合。
例子:
for (int num: arr){
sum+=num;
}

3、 数组和内存

java代码经过编译之后,形成的class文件由java解释器中的类加载器去解释,同时java解释器会向内存去申请栈内存和堆内存
这里说的堆栈内存是指jvm的虚拟内存,栈内存是需要和实际的物理内存进行通信的
在这里插入图片描述
下图是在运行一个java类时,内存工作机制的一个大概说明,
堆内存主要分为:对象去,方法区,还有常量池。
在这里插入图片描述

4、一维数组的几个常见应用场景

求最大值

public class Demo3 {
    
    
    public static void main(String[] args) {
    
    
        int[] a = new int [100];
        for (int i = 0; i < a.length; i++) {
    
    
            a[i]=(int)(Math.random()*100);
        }
        System.out.print("[");//数组最原始的一种打印方式
        for (int i = 0; i < a.length; i++) {
    
    
            if(i==a.length-1){
    
    
                System.out.println(a[i]+"]");
            }else{
    
    
                System.out.print(a[i]+",");
            }
        }
        //求最大值
        int max=-1;
        for (int i = 0; i < a.length; i++) {
    
    
            if(a[i]>max){
    
    
                max=a[i];
            }
        }
        System.out.println("最大值为:"+max);
    }
}

插入数值

public class Demo4 {
    
    
    public static void main(String[] args) {
    
    
        int[] a={
    
    99,85,82,63,60};
        //第一步,先扩容
//        int[] b=new int [a.length+1];
//        for (int i = 0; i < a.length; i++) {
    
    
//            b[i]=a[i];
//        }
        int[] b=Arrays.copyOf(a,6);//数组的简便扩容方式
        System.out.println(Arrays.toString(b));
        int num=120;
        //从后向前比
        //比该数小的后移
        //找到比该数大的,则该数在的后面插入
        //如果找不到比该数大的,则该数插在首位
        boolean isInsert=false;
        for (int i =b.length-2; i >=0; i--) {
    
    
            if(b[i]<num){
    
    
                b[i+1]=b[i];//比该数小的后移
            }else{
    
    
                isInsert=true;
                b[i+1]=num;//找到比该数大的,则该数在的后面插入
                break;
            }
        }
        if(!isInsert){
    
    
            b[0]=num; //如果找不到比该数大的,则该数插在首位
        }
        System.out.println(Arrays.toString(b));
    }
}

猜你喜欢

转载自blog.csdn.net/wl20040124/article/details/113248724