Java学习笔记(3){数组}

1、数组的声明

 int[] array
 或
 int array[] //意义相同,不推荐

2、数组的初始化

2.1静态的初始化
int[] array = {1 2 3 4 5};
int[] array = new int[] {1 2 3 4 5}; //给方法传参数 或者 匿名数组
2.2动态的初始化
int[] array = new int[数组的长度];
2.3不初始化数组
int[] array = null; //只是指向空,但里面无内容

未初始化的数会有默认值,
不同类型默认值:

byte/short/int/long/           0
double/folat                   0.0
char                           0x0000
boolean                        false
reference                      null

并不是所有的都有默认值,
拥有默认值的:数组内元素、属性、静态属性
没有默认值的:局部变量、参数
3、数组的属性
数组是引用类型属性,是引用传递,改变形参,实参会感受到变化
内存储存(简单化分):
1.栈:局部变量、形参
2.堆:对象(数组的对象)

class TestIt
{
    public static void main ( String[] args )
    {
        int[] myArray = {1, 2, 3, 4, 5};
        ChangeIt.doIt( myArray );
        for(int j=0; j<myArray.length; j++)
            System.out.print( myArray[j] + " " );
    }
}
class ChangeIt
{
    static void doIt( int[] z ) 
    {
        z = null ;
    }
}
输出是:1 2 3 4 5
这段代码中的数组虽然是引用传递 ,但是将引用 z = null 只是将引用z不指向任何对象 ,
并不会对原先指向的对象数据进行修改 。
class ChangeIt
{
    static void doIt( int[] z )
    {
        int[] A = z;
        A[0] = 99;
    }
}

class TestIt
{
    public static void main( String[] args )
    {
        int[] myArray = {1, 2, 3, 4, 5};
        ChangeIt.doIt(myArray);
        for (int i = 0; i < myArray.length; i++)
        {
            System.out.print(myArray[i] + " ");
        }
    }
}
输出是:99 2 3 4 5 
引用传递,改变形参数组中具体的值,实参可以感受到变化

4、数组的处理
基本循环处理

class testarray
public static void main(String[] args){
      int[] array = {1 2 3};
      //打印所有元素
      for(int i = 0; i < array.length; i++){
            System.out.println(array[i]);
      }
      //计算所有元素的总和
      int sum = 0;
      for(int i = 0; i< array.length; i++){
            sum += array[i];
      }
      System.out.println("总和是" + sum);
      //查找最大元素
      int max = array[0];
      for(int i = 0; i < array.length; i++){
            if(max < array[i]){
                 max = array[i];
            }
      System.out.println("最大值是" + max);   
      }
}

for-each循环处理:

for(type element: array)
{
System.out.println(element);
}

实例代码:

class testarray
public static void main(String[] args){
      int[] array = {1 2 3};
      //打印所有数组元素
      for(int element: array){
      System.out.println(element);   
      }
}

5、Arrays类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

给数组赋值:通过 fill 方法。
对数组排序:通过 sort 方法,按升序。
比较数组:通过 equals 方法比较数组中元素值是否相等。
查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

在这里插入图片描述

发布了22 篇原创文章 · 获赞 1 · 访问量 599

猜你喜欢

转载自blog.csdn.net/zxhl_/article/details/95902990
今日推荐