Java基础

数组

数组是一种引用数据类型,并且是相同的数据类型的集合。

下面是数组的定义:

//声明整型数组a,包含5个元素,每个元素都是int类型,默认值为0
int[] a = new int[5];
//声明浮点型数组d,包含10个元素,每个元素都是double类型,默认值为0.0
double[] d = new double[10];
//声明布尔型数组b,包含26个元素,每个元素都是boolean类型,默认值为false
boolean[] b = new boolean[26];

数组的初始化

int[] arr1 = new int[3]; //0,0,0
int[] arr2 = {2,5,8}; //2,5,8
int[] arr3 = new int[]{2,5,8}; //2,5,8
int[] arr4;
//arr4 = {2,5,8}; //编译错误,此方式只能声明同时初始化
arr4 = new int[]{2,5,8}; //正确

访问:访问的数组中的数据

1.通过(数组名.length)可以获取数组的长度(元素个数)

int[] arr = new int[3];
System.out.println("数组的长度:"+arr.length); //3,长度即元素个数

2.通过下标/索引来访问元素,下标从0开始,到最大(数组的长度-1)

int[] arr = new int[3];
System.out.println("数组的长度:"+arr.length); //3,长度即元素个数
System.out.println("数组第1个元素为:"+arr[0]); //0
arr[0] = 100; //给第1个元素赋值为100
arr[1] = 200; //给第2个元素赋值为200
arr[2] = 300; //给第3个元素赋值为300
//arr[3] = 400; //运行时会发生数组下标越界异常
System.out.println(arr[2]); //300,输出最后一个元素的值
System.out.println(arr[arr.length-1]); //300,输出最后一个元素的值

3.遍历/迭代:从头走一遍

public class MaxOfArray {
public static void main(String[] args) {
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
System.out.println(arr[i]);
}
// 0, 1, 2, 3
//假设:int[] arr = {12,56,89,8};
//max=12/56/89
int max = arr[0]; //假设第1个元素为最大值
for(int i=1;i<arr.length;i++){ //遍历剩余元素
if(arr[i]>max){ //若剩余元素大于max
max = arr[i]; //将max修改为较大的
}
}
System.out.println("最大值为:"+max);
}
}

4.复制

int[] a = {10,20,30,40,50};
//a:源数组
//b:目标数组
//6:目标数组的长度
// --若目标数组长度>源数组长度,则末尾补默认值
// --若目标数组长度<源数组长度,则将末尾的截掉
int[] b = Arrays.copyOf(a,6); //灵活性差
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
}
int[] a = {10,20,30,40,50};
int[] b = new int[6]; //0,0,0,0,0,0
//a:源数组
//1:源数组的起始下标
//b:目标数组
//0:目标数组的起始下标
//4:要复制的元素个数
System.arraycopy(a,1,b,0,4); //灵活性好
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
}

5.排序

import java.util.Arrays;
//数组的演示
public class ArraySort {
public static void main(String[] args) {
Random rand = new Random(); //随机数对象
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = rand.nextInt(100); //0到99的随机整数
System.out.println(arr[i]);
}
Arrays.sort(arr); //对arr数组做升序排列
System.out.println("排序后:");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println("倒着输出:");
for(int i=arr.length-1;i>=0;i--){ //数据还是升序的,只是倒着展示
System.out.println(arr[i]);
}
System.out.println("第1个元素为:"+arr[0]); //小的
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值