java基础语法(数组)

1、数组的定义

数组:用来储存同一种类型的数据

1.1、创建数组

数组定义的三种方法:

动态初始化
int[] array1 = new int[10];//前面的int[]为数组的类型,后面的int[10]为其能够存放的大小,array1为其数组名称
静态初始化
int[] array2 = {1,2,3,4,5};
int[] array3 = new int[]{1,2,3,4,5};
1.2、初始化数组

初始化数组有动态初始化和静态初始化两种
动态初始化:在创建数组时,只定义数组中元素的个数,并未给里面的元素进行赋值

例如:int [] array = new int [ 10 ];

静态初始化:在创建数组时不定义数据元素个数,而直接将数组里的数据内容进行赋值,编译器会自己判定数组有几个元素, 后面的数据必须与前面定义的数据类型一致

例如:int[] array1 = {0,1,2,3,4,5,6,7,8,9};  

初始化能分为两步

int [] array ;
array  = new int []{ 10 , 20 , 30 };

new不可省略

1.3、默认值:当数组中的元素为动态初始化时,会有对应的默认值
2、数组的使用
2.1、访问数组

通过数组的下标进行访问,数组在内存中是一块连续的内存空间,索引从0开始后推

2.1.1、取值
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(array[3]);
    }
}
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(array[5]);
    }
}

超过会报异常

2.1.2、赋值
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        array[4]=10;
        System.out.println(array[4]);
    }
}

超过会报异常

3、数组长度属性:length

数组的下标是从0开始的,所以数组用下标访问最大能到数组长度-1(前提:数组中存在数据)

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(array.length);
    }
}

超过数组索引长度会提示索引越界异常

4、遍历数组

数组有3种打印方式

1)for循环打印数组

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

2)foreach打印数组(增强for循环)

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        for (int x:array) {
            System.out.print(x+" ");
        }
    }
}

 3)toString打印数组

import java.util.Arrays;
 
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(Arrays.toString(array));//使用toString方法需要导包,类似C语言中的头文件
    }
}

5、找数组中的最大值

public class demo{
public static void main(String[] args){
int[] arr=new int[]{15,29,324,42,43,45,654};
int max=arr[0];
for(int i=0;i<arr.length;i++){
if(max<arr[i]){
max=arr[i]
}
}
}
System.out.println("最大值为:"+max);
}

6、数组反转

public class demo{
public static void main(String[] args){
int[] arr=new int[]{15,29,324,42,43,45,654};
for(int i=0;j<arr.length-1;i<j;i++;j--){
定义一个临时变量记住后一个位置
int lin=arr[i];
后一个值等于前一个值
arr[j]=arr[i];
前一个值等于临时变量保存的后一个值
arr[i]=lin;
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}

7、随机排名

public class demo03 {
public static void main(String[]
args){
/随机排名
1/定义一个动态数组用子存储
intl] a = new int[5];
//提示灵入工号
Scanner s = new Scanner (System. in);
for (int i = 0; i <a.length; i++) {
system.out.println("请您输入第"+(i+ 1)+"个工号");
a[i] = s.nextInt();
}
//打乱数组
Random r=new Random;
for (int i=0;i< a.length;i++){
1/每遍历一个数组数据,都随机一个案引范国内的值,然后以当前位置的数交换
int index=r.nextInt( bound: 5); //0-4 int Lin=alindex]; a[index]=alil;
a[il=Lin;
//適历
for (int i=0;i< a.length;i++){
System.out.println(a[il);

8、有关数组方法的使用

8.1、toString

toString方法的作用是将数组的数据变成字符串类型数据

import java.util.Arrays;
 
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};//定义一个数组
        String arrays = Arrays.toString(array);//用字符串类型接受方法的返回值
        System.out.println(arrays);
    }
}

模拟实现toString

public class Test {
 
    public static String toString(int[] array){//返回类型为字符串类型
        String array1 = "[";//定义一个字符串类型数据
        for (int i = 0; i < array.length; i++) {
            array1+=array[i];
            if(i!= array.length-1){
                array1+=",";
            }
        }
        array1+="]";
        return array1;
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};//定义一个数组
        String arrays = toString(array);//用字符串类型接收方法的返回值
        System.out.println(arrays);
    }
}

8.2、copyOf

public static int[ ] copyOf(int[ ] original,int newLength)

第一个参数original   要复制的数组

第二个参数newLength  要返回的副本的长度

import java.util.Arrays;
 
public class Test {
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] newArray = new int[array.length];//新数组
        newArray = Arrays.copyOf(array,array.length);
        System.out.println(Arrays.toString(newArray));
    }
}

模拟copyOf

import java.util.Arrays;
 
public class Test {
 
    public static int[] copyOf(int[] array,int length){
       int[] newArray = new int[array.length];
        for (int i = 0; i < array.length; i++) {//循环赋值
            newArray[i] = array[i];
        }
        return newArray;
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] newArray = copyOf(array, array.length);
        newArray[2] = 30;//将拷贝好的数组的第3个元素赋值为30,观察该改变是否对原数组是否有影响
        System.out.println("array:"+Arrays.toString(array));
        System.out.println("newArray:"+Arrays.toString(newArray));
    }
}

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值