【宋红康学习日记5】数组

  昨天写好的数组总结结果没有保存丢失掉了,现在重新写一下。

  数组是用来存储数据的,是相同类型数据的组合,数组分为一维数组和多维数组,这里多维数组主要以二维数组为例。

  一、数组的初始化

  1.维数组初始化分为静态和动态初试化两张。静态初始化:int[] arr=new int[ ]{1,2,3};

                      动态初始化:int[] arr=new int[3];  (一定要指明数组长度)arr[0]=2;arr[1]=4;arr[2]=89;

  2.维初始化和一维初始化原理相同。静态初始化:int[][] arrs=new int[][]{{1,32},{3,45},{45,567}};

                  动态初始化:int[][] arrs=new int[3][];(一定要指明数组长度);

                        arrs[0]=13;arrs[1]=33;(再进行一维数组初始化赋值)

                        注意:这样写是错误的!(String[][] strs=new String[3][2];strs[0][1]=2;这样写是错误的,因为没有对一维数组进行初始化规定其长度,所以没法引用数组)

  3.数组长度:arr.length;arrs.length;arrs[i].length.

  4.数组初始化默认的值

    1)对于byte short int long,数组初始化值为0;

    2)对于float double,数组值初始化值为0.0;

    3)对于char字符而言,数组初始化默认值为空格;

    4)对于boolean而言,数组初始化默认值为false;

    5)对于引用型数据如数组、类、接口而言,数组初始化默认值为null;

  

二、数组的内存结构

  1.一维数组内存结构图

        2二维数组内存结构图

还有几种异常,数组下标越界异常和空指针异常,使用时多加注意。

    在这里还涉及到了数组的一些算法,如冒泡法等。在这里不多说。

  

class Shuzu4
{
    public static void main(String[] args)
    {
        int[] arr=new int[]{12,34,55,22,54,3,2,2,-9,0,-89};
        //最大值
        int max=arr[0];
        for(int i=0;i<arr.length;i++){
            if(max<=arr[i]){
                max=arr[i];
            }
        }
        System.out.println("最大值是"+max);
        //最小值
        int min=arr[0];
        for(int i=0;i<arr.length;i++){
            if(min>=arr[i]){
                min=arr[i];
            }
        }
        System.out.println("最小值是"+min);
        //总和
        int sum=0;
        for(int i=0;i<arr.length;i++){
            sum+=arr[i];
        }
        System.out.println("总和是"+sum);
        //平均数
        double ave=0;
        ave=sum/arr.length;
        System.out.println("平均数是"+ave);
        //复制
        int[] arr1=new int[arr.length];
        for(int i=0;i<arr1.length;i++){
            arr1[i]=arr[i];
        }
        //数组中元素反转
        for(int i=0;i<arr.length/2;i++){
            int temp=arr[i];
            arr[i]=arr[arr.length-i-1];
            arr[arr.length-i-1]=temp;
        }

        //或
            for(int x=0,y=arr.length-1;x<y;x++,y--){
                int temp=arr[x];
                arr[x]=arr[y];
                arr[y]=temp;
            }
        //遍历
        for(int i=0;i<arr1.length;i++){
                System.out.println(arr1[i]);
            }
        }
}

                  

时间: 2024-11-03 22:16:35

【宋红康学习日记5】数组的相关文章

【宋红康学习日记20】

异常分为运行时异常和编译时异常.一 几种常见的运行时异常(运行时异常可不处理) 1 数组下标越界异常(ArrayIndexOutOfBoundsException) 2 算术异常(ArithmaticException) 3 类型转换异常(ClassCastException) 4 空指针 异常(NullPointerException) 1 //常见运行时异常 2 //01 数组越界异常 3 @Test 4 public void test1(){ 5 try{ 6 int[] arr=new

【宋红康学习日记1】关于环境变量设置出现的问题——找不到或无法加载主类 java

忙活了一整天,最后被自己的小愚蠢所拜倒,不过也是学习到了很多,知道了出现问题怎样去解决. 问题是在cmd运行环境中编译我的第一个小程序HelloWorld时,javac命令可以运行,但是java命令后出现了下面的情况. 在经历了百度博客园各种查阅都无果的情况下,最后问舍友终于发现,原来是我程序写错了.在运行的时候,应该是java HelloWorld,没有后缀.这也说明我学习有多不认真,当然跟身体不舒服坐立不安(我不是女生)也很有关系,下次一定会好好掌握. 言归正传,简单说一下我配置环境变量的过

【宋红康学习日记18】接口

一 接口1 接口可看做是一个抽象的类,是一种功能,由常量(public static final修饰)和抽象方法(public abstract修饰)组成 interface AA{ (public static final)int age; (public abstract)void method(); }2 接口与接口:继承关系,多继承.interface AA extends BB,CC{} 类与接口: 实现关系,多实现. class AA implements BB,CC,DD{} 类与

【宋红康学习日记11】Object类与equals方法

1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在String,File,Date类重写了equals方法,比较的是值: 3 String类内存解析 Person p1=new Person("花花",20); Person p2=new Person("曹操",40); syso(p1==p2);//false syso

【宋红康学习日记13】Static关键字

一   Static修饰的属性叫类变量或静态变量: 1 非Static修饰的属性叫实例变量: 2 类变量随着类的加载而加载,出现的比实例变量早,实例变量只能对象创建时加载出来: 3 可通过”类.类变量“或”对象.类变量“调用类变量: 4 类变量只有一个,只要修改别的变量调用时也会将其修改: 5 类变量存在静态域中. 二 Static 修饰的方法叫类方法或静态方法 1 类方法随着类的加载而加载: 2 类方法中只能有静态属性和静态方法,非静态方法则都可以: 3 可通过"类.方法"或&quo

【宋红康学习日记15】类的初始化块

一  非Static代码块 { ............................. } 1 可对类的属性初始化: 2 可以有输出语句: 3 一个类中可有多个非静态代码块,顺序执行: 4 每创建一个类的对象,非静态代码块加载一次: 5 非静态代码的执行早于构造器. 二  Static代码块 static { ............................. } 1 可对类的属性初始化: 2 可以有输出语句: 3 一个类中可有多个静态代码块,顺序执行: 4 静态类早于非静态类代码块

【宋红康学习日记17】抽象

一  抽象修饰的类为抽象类: 1  抽象类不可被实例化:2 抽象类有构造器:3 有抽象方法的类即为抽象类. 二 抽象修饰的方法即为抽象方法: 1 格式:public abstract void method(); 2 抽象方法只保留方法的功能,而具体的执行交给继承抽象类的子类重写. 3 若子类重写了父类所有的抽象方法,这个子类可以实例化: 4 若子类只重写了几个父类的抽象方法,则此类叫抽象类.

【宋红康学习日记8】面向对象特征之一--封装与隐藏

一 封装 1 创建对象时,调用属性值时,不应该“对象.属性”,应该尽量将类中属性设置为隐私,通过“对象.方法”来调用属性,这就是封装性与隐藏性的思想. 2 封装的思想:将类的属性私有化,提供方法(setter&getter方法)调用. 二 权限修饰符 public private protected  缺省(default) 1 权限大小 public<protected<defaule<private 2 class 只能由public default修饰 三 构造器 1 作用

【宋红康学习日记7】面向对象编程【2】类与方法

1一 匿名类 new Circle();(创建只能使用一次 不可再调用) 二 可变个数形参形式(构成重载) public int getSum(){} public int getSum(int i,int j){} public int getSum(int...args){}=public int getSum(int[] aargs) [注]若方法中存在可变个数的形参,则声明在后 public void sayHello(int i,String...str)(一个方法中最多只有一个可变个