数组-数据结构(求和、反转、打印)

数组的定义:什么是数组

一组数据

数组是相同数据类型的有序集合

数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成

其中,每一个数据称作一个数组元素,每个数组元素,都可以通过一个下标来访问它们


声明方式:

声明数组变量:

int  [] arr;//首选创建数组方式

int arr[]; 

用new操作符创建变量

int []arr=new int[12];

数组的元素是通过索引访问的,数组索引从0开始

获取数组长度方法:arr.length

复制代码
public class HelloWorld {
    public static void main(String []args) {
      int []arr=new int[13];//定义长度为13的数组,可以存放13个数字
        arr[0]=15;//把下标为0的值设置为15
        arr[1]=28;//把下标为1的值设置为28
        System.out.println(arr[0]);//打印下标为0的值
        System.out.println(arr.length);//打印数组长度
    }
}
复制代码

求数组的和:

复制代码
public class HelloWorld {
    public static void main(String []args) {
      int []arr=new int[13];//定义长度为13的数组
        arr[0]=1;
        arr[1]=2;
        arr[2]=3;
        arr[3]=4;
        arr[4]=5;
        arr[5]=6;
        int sum=0;
        for(int i=0;i<arr.length;i++){
        
            sum=sum+arr[i];//求数组的和
        }
        System.out.println(sum);
        
    }
}
复制代码

 内存分析:

 

 

 

 


 

 数组的三种初始化方式:

 

静态初始化:
int []arr={1,2,3,4,4};
Man[]arr={new Man(1,1),new Man(2.2)}
int []arr=new int [4];
arr[0]=12;
arr[1]=14;

数组的默认初始化:

数组是引用类型,它的元素相当于类的实例化变量 ,所以数组一经分配空间,其中的元素也会被按照实例变量的同样方式隐式初始化 

注:所以当数组一但new了,然后分配了空间,不管有没有值他都会默认的进行初始化,未赋值的下标当去使用时输出的内容为0;


数组的四大特点:

长度确定,创建后不可更改

类型必须相同

数据类型不限,可引用类型也可基本类型

数组变量本身是引用类型,所以可以把数组当做对象,其中的元素可以当做为成员变量,可以根据下标进行使用

数组本身是对象:其中java中对象是在堆中的,所以数组不论声明保存任何类型,数组对象本身是在堆中

数组边界:

下标的合法区间:【0,length-1】,如果越界会报错

错误:ArrayIndexOutOfBoundsException

 


数组的使用:

复制代码
public class HelloWorld {
    //遍历数据内的全部元素
    public static void main(String []args) {
      int []arr={1,2,3,4,5,6};
        for(int i=0;i<arr.length;i++){
        System.out.println(arr[i]);
        }
    }
}
复制代码
复制代码
public class HelloWorld {
    //遍历数组计算元素中的和
    public static void main(String []args) {
      int []arr={1,2,3,4,5,6};
        int a=0;
        for(int i=0;i<arr.length;i++){
        a=a+arr[i];//求和
        }
        System.out.println(a);
    }
}
复制代码
复制代码
public class HelloWorld {
    //遍历数组计算元素中最大的值
    public static void main(String []args) {
      int []arr={1,2,3,4,5,6,11,22,11,55,0};
        int Max=arr[0];//把这个定义为数组的第一个数
        for(int i=0;i<arr.length;i++){
        if(arr[i]>Max){
            Max=arr[i];//
        }
        
        }
        System.out.println(Max);
    }
}
复制代码
复制代码
public class HelloWorld {
    //使用增强for循环,遍历数组,注:增强for没有下标,不合适操作元素
    public static void main(String []args) {
     int []arr={1,3,4,5,6,1,0,11,22};
        for(int a:arr){//增强for循环
        System.out.println(a);
        }
    }
}
复制代码
复制代码
public class HelloWorld {
    //使用增强for循环遍历数组,然后求出最大值
    public static void main(String []args) {
     int []arr={1,3,4,5,6,1,0,11,22};
        int Max=arr[0];
        for(int a:arr){//增强for循环
        if(a>Max){
        Max=a;
        }
            
        }
        System.out.println(Max);
    }
}
复制代码
复制代码
public class HelloWorld {
    public static void main(String []args) {
      //数组反转
        int []a={1,2,3,4,5,6,7,8,9};
        int []d=read(a);
        toin(d);
    }
    //反转数组
    public static int[] read(int []rdag){
        
        int []regh=new int [rdag.length];//创建一个变量让他的长度不能大于传入的参数
        for(int i=0,j=regh.length-1;i<rdag.length;i++,j--){
        //相当于
            
            System.out.println("i:"+rdag[i]);
            System.out.println("j:"+regh[j]);
        
        regh[i]=rdag[j];//把第j个元素传给i,一一对应的传,因为
        
        }
        return regh;
    
    }
    
    
    //打印数组
    public static void toin(int []arr){
    for(int i:arr){
    System.out.println(i);
    }
    
    }
}
复制代码

 


Arrays类:

    

复制代码
方法:
    给数组赋值:fill(int a,int vla),把数组的值,改为对应的值,fill​(int[] a, int fromIndex, int toIndex, int val):把指定的数组中,指定元素,替换成某一个内容
    如:
      
复制代码
public class HelloWorld {
    public static void main(String []args) {
      int []arr={1,2,3,4,5,222,555,6,55};
        Arrays.fill(arr,2,222,8);//如把arr数组中的2跟222的元素中间的内容替换成8,输出,1,2,8,8,8,222,555,6,55
        
    }
    
        
    
    }
}
复制代码

 


      对数组排序:scrt()
      比较数组:equals()
      查找元素:binarySearch()

复制代码

 

//自定义一个工具类,打印数组
复制代码
public class HelloWorld {
    public static void main(String []args) {
      int []arr={1,2,3,4,5,222,555,6,55};
        //注:在正常编写程序的时候这个,方法名不能写为,toString,因为这个方法名已被使用
        toString(arr);//调用方法,打印数组
          
    }
    //自定义一个工具类,打印数组
public static void toString(int[] a){ for(int i=0;i<a.length;i++){ //根据判断在前后添加[]号 if(i==0){//如果第一个i=0,那就在最开始打印一个[ System.out.print("["); }if(i==a.length-1){//如果i等于a的长度减一,那就打印] System.out.print("]"); }else{ System.out.print(a[i]+","); } } } }
复制代码

 

posted @   hollg  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示