数组

                                 数组 
  一、定义
  数组是一组相同类型的变量。
  二、创建数组
  int[]  array1 = {1,2,3,4,5};
  int[]  array2 = new int[]{1,2,3,4,5};
  int[]  array3 = new int[5];
  三、遍历数组(3种方式)

//方式一for循环
for(int i = 0; i<array1.length;i++){
int ret = array1[i];
System.out.println(ret);
}
//方式二 foreach
for(int x :array1){
System.out.println(x+" ");
}
X保存的是数组中的每个元素
//方式三 使用工具类Arrays
String str = Arrays.toString(array1);
System.out.println(str);
注意
public static void main(String[] args) {
int[] array = {};
for(int i =0;i<array.length;i++){
System.out.println(array[i]);
}//数组长度为0;打印出来是空
System.out.println(array[0]);//下标越界
int[] array1 = new int[5];
for(int i =0;i<array.length;i++){
System.out.println(array[i]);
}//打印出来是5个0
}
三、数组作为方法的参数
局部变量:定义在方法里面的变量,存放在栈中
JVM中有5块内存:JVM栈(java虚拟机栈)、本地方法栈、堆、方法区、程序计数器。
int a = 10;
整形变量,存放的是整形数据
int[] array = {1,2,3,4,5};
引用变量,存放的是引用(地址),内容存放在堆中。
注意:数组是对象,对象都在堆上。
java当中,都是按值传递,但是这个“值”要注意,可能是简单类型,也可能是引用类型。

 public static void printArray(int[] array){
        for(int i = 0;i<array.length;i++){
            System.out.println(array[i]);
        }
    }
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        printArray(array);
    }

两个引用指向一个对象,通过其中一个引用来修改这个对象的值之后,那么另外一个引用访问这个对象时,值也发生了改变。
四、认识null
int[] array = null;//代表不指向任何对象
五、数组转字符串

 public static void toString(int[] array){
        String ret ="[";
        for (int i = 0; i <array.length ; i++) {
            ret+=array[i];
            if(i!=array.length-1){
                ret+=",";
            }
        }
        ret+="]";
        System.out.println(ret);

    }
    public static void main6(String[] args) {
        int[] array ={1,2,3,4,5};
        toString(array);
    }

六、数组的拷贝

  //数组的拷贝(4种方法)
        System.out.println("======for======");
        int[] array = {1,2,3,4,5};
        int[] copy = new int[array.length];
        for (int i = 0; i <array.length ; i++) {
            copy[i] = array[i];
        }
        System.out.println(Arrays.toString(copy));
        System.out.println("======Arrays========");
        int[] copy1 = Arrays.copyOf(array,array.length);
        System.out.println(copy1);
        System.out.println("======system=======");
        int[] copy3 =new int[array.length];
        System.arraycopy(array,0,copy3,0,array.length);
        System.out.println(Arrays.toString(copy3));
        System.out.println("=======clone=======");
        int[] copy4 = array.clone();
        System.out.println(Arrays.toString(copy4));

深拷贝、浅拷贝
深拷贝:针对简单数据类型,修改原数组,不会影响到新数组
浅拷贝:针对引用类型,两个引用,同时指向一个对象,修改源数组,值也发生了改变。
拷贝某个数组范围:Arrays.copyOfRange(array,2,4);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值