JAVA笔记Day3

一、数组的定义与使用

1、 定义格式:
·动态初始化:初始化之后每个数据都是数据类型的默认值
声明并初始化数组:数据类型 数组名称【】=new 数据类型 【长度】
·静态初始化:在数组定义的时候就为其设置好了里面的内容
简化格式:数据类型 数组名称【】={数据1,数据2}
完整格式:数据类型 数组名称【】=new 数据类型{数据1,数据2}
tip:对于数组的长度也可以使用“数组名称.length”获得,for循环要length-1

2、数组的引用传递(一个堆内存可以被多个栈内存指向)
在这里插入图片描述
在这里插入图片描述
引用传递内存分析
在这里插入图片描述
在这里插入图片描述

3、foreach输出
问题:为了减轻下标对程序的影响,引入一个增强型的for循环(foreach)。
语法形式:For(数据类型 变量:数组|集合){}
特点:可以自动将数组中每一个元素内容取出保存在变量里面,从而避免用下标获取。

4、二维数组(表)
定义语法:
数组动态初始化:数据类型 数组名称 【】【】=new 数据类型【行个数】【列个数】
数组的静态初始化:数据类型 数组名称 【】【】=new 数据类型【】【】{xxxxxx}

5、数组与方法
在这里插入图片描述
在这里插入图片描述
通过方法修改数组内容
在这里插入图片描述
在这里插入图片描述
案例:
随意定义一个int数组,要求可以计算出这个数组元素的综合、最大值、最小值

class arrUtil{
public static int [] initArray(){
        int arr[]=new int[] {2,5,6,3,1,4};
        return arr;
        }
public static void printArray(int temp[]){
        for(int i=0;i<temp.length;i++)
        {
        System.out.println(temp[i]);
        }
        }
public static void getsum(int[] temp){
        int sum=0;
        for(int i=0;i<temp.length;i++)
        {
        sum+=temp[i];
        }
        System.out.println(sum);
        }
public static void getmin(int temp[]){
        int min=temp[0];
        for(int i=0;i<temp.length;i++)
        {
        if(temp[i]<min){
        min=temp[i];
        }
        }
        System.out.println(min);
        }
public static void getmax(int temp[]){
        int max=temp[0];
        for(int i=0;i<temp.length;i++)
        {
        if(temp[i]>max){
        max=temp[i];
        }
        }
        System.out.println(max);
        }

        }
class arrDemo{
public static void main(String args[]){
        arrUtil.printArray(arrUtil.initArray());
        arrUtil.getsum(arrUtil.initArray());
        arrUtil.getmax(arrUtil.initArray());
        arrUtil.getmin(arrUtil.initArray());

        }
        }

6、数组排序
在这里插入图片描述

class arUtil{
    public static void qsort(int data[]){
        for(int i=0;i<data.length;i++)
        {
            for(int j=0;j<data.length-i-1;j++)//-1是因为会有数组溢出问题
            {
                if(data[j]>data[j+1])
                {
                    int temp=data[j];
                    data[j]=data[j+1];
                    data[j+1]=temp;
                }
            }
        }
    }
    public static void printArray(int temp[]){
        for(int k=0;k<temp.length;k++)
        {
            System.out.print(temp[k]+"、");
        }
        System.out.println();
    }
}
 class arr{
    public static void main(String args[]){
        int data[]=new int [] {8,9,0,2,3,5,10,7,6,1};
        arUtil.qsort(data);
        arUtil.printArray(data);
    }
}

7、数组转置(数组首尾交换)
做法一:定义一个新的数组,用逆序方法保存(会产生垃圾空间)
在这里插入图片描述
在这里插入图片描述
做法二:在一个数组上转置

在这里插入图片描述
在这里插入图片描述
8、数组相关类库
数组排序:java.util.Arrays.sort();
数组拷贝:System.arraycopy(原数组,原数组开始点,目标数组,目标数组开始点,拷贝长度)

9、方法可变参数
问题:如果要求定义一个方法,这个方法可以实现任意多个整形数据的相加处理。
在这里插入图片描述
采用可变参数(变种数组,本质为数组)
可变数组形式:(int … data)
在这里插入图片描述
作用:在进行一些程序类设计或者开发时,利用此种形式就可以避免数组的传递操作了。

10、对象数组
类也可以成为数组类型,这样的数组称为对象数组。
定义:
动态初始化:类 对象数组名称【】=new 类【长度】
静态初始化:类 对象数组名称【】=new 类【】{实例化对象、实例化对象,。。。。}
动态初始化:
在这里插入图片描述
在这里插入图片描述
静态初始化:
内存分析:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值