Java基础--数组

这篇博客详细介绍了Java中数组的声明、分配空间、赋值和使用,包括一维和二维数组。文中通过实例展示了如何创建、遍历、修改和删除数组元素,以及数组的默认值。此外,还讲解了如何利用Arrays类的方法进行数组操作,如排序、查找和转换。
摘要由CSDN通过智能技术生成

如何创建数组:

数组声明,分配空间,赋值,使用

分步写:

  1. 数组声明:数据类型 数组名[];  或者数据类型[]  数组名;
  2. 分配空间:  数组名=new 数据类型[数组长度];
  3. 赋值:  数组名[ 下标]=数据;  ps:下标从0开始
  4. 使用数据:数组名[下标];

int[] arr=new int [5]/int arr[]=new int [5];

arr[0]=1;

arr[2]=2;

….

int[] arr=new int[]{1,2,3,4,5};

数组默认值:

byte/short/int/long类型数组元素默认值:0

float/double类型的数组默认值:0.0

char类型数组元素默认值:" "

boolean类型数组元素默认值为:false

String类型数组元素的默认值:null

数组名,分配空间,赋值合并可以简写

double[] nums=new double[]{12.5,33.2,231.1,23.13,23.1564};//ps:此时在[]不能写长度

遍历数组:

//声明一个长度为10的int类型的数组,然后用键盘录入给数组元素赋值

int[] nums=new int[10];

Scanner input=new Scanner(System.in);

for(int i=0;i<10;i++){

System.out.println("请输入第"+(i+1)+"个数据");

nums[i]=input.nextInt();

}

for(int i=0;i<10;i++){

System.out.print(nums[i]+" ");//遍历数组

}

int[] nums=new int[]{1,2,3,4,5,6,7,8,9,10};

//遍历数组

for(int i=0;i<=nums.length-1;i++){

System.out.print(nums[i]+" ");

}

//数组名.length   得到数组的长度

}

for(int a:nums){   //foreach语句,增强for循环

System.out.println(a);  

}//执行机制:将数组或者集合里面的数取出来后存储在变量中,然后操作变量去操作数组或者集合

数组增加一个数据:

/*

 * 有一个数组元素按照从大到小的顺序排列的数组{100,90,80,70,60} 插入一个元素,要保证插入后还是降序

 *

 * 思路:

 *   (1):声明一个长度比原来数组长度大1的数组,将原来的数组元素存储到新数组中

 *   (2):通过输入获取数据

 *   (3):得到插入数据的位置下标

 *   (4):从插入数据开始以及之后的元素都要往后移一位(ps:从最后面开始)

 *          (5):将获取的插入数据元素存储到插入元素中去

 *

 */

int i;

int[] nums=new int[]{100,90,80,70,60};//需要插入元素的数组

int[] nums1=new int[nums.length+1];//新数组

Scanner input=new Scanner(System.in);

System.out.println("请输入你想插入的数: ");//85

int num=input.nextInt();  //获取插入的元素

int count=0;

for(i=0;i<nums.length;i++){

if(nums[i]<num){

System.out.println("你输入的数字插入下标为: "+i);  //得到插入元素的位置

break;

}

count++;

if(count==5){

System.out.println("你输入的数字插入下标为: "+(i+1));

}

}

for(int j=4;j>=i;j--){     //原来数组插入数的后面数往后移一位

nums1[j+1] =nums[j];

}

nums1[i]=num;              //将输入的数插入数组

for(int j=0;j<i;j++){      //插入数之前的数保持不变

nums1[j]=nums[j];

}

for(i=0;i<nums1.length;i++){             //输出新数组

System.out.print(nums1[i]+" ");

}

数组删除一个数据:

/*

 * 有一个数组元素按照从大到小的顺序排列的数组{100,90,80,70,60} 删除一个元素,要保证删除后还是降序

 *

 * 思路:

 *   (1):声明一个长度比原来数组长度小1的数组,将原来的数组元素存储到新数组中

 *   (2):通过输入获取删除数组的下标

 *   (3):从删除数据开始以及之后的元素都要往前移一位(ps:从删除数据下一个开始)

 *  (4):输出新的数组

 *

 */

int i;

int[] nums=new int[]{100,90,80,70,60};//需要插入元素的数组

int[] nums1=new int[nums.length-1];//新数组

Scanner input=new Scanner(System.in);

System.out.println("请输入你要删除数的下标:");

int num=input.nextInt(); 

if(num>=0&&num<=nums.length){      //判断删除的数据是多少

System.out.println("删除的数据为: "+nums[num]);

for(i=0;i<=num-1;i++){     //将删除数据前面的数存储到新数据中

nums1[i]=nums[i];

}

for( int j=num+1;j<nums.length;j++){ //将删除数据后面的数存储到新数据中

nums1[j-1]=nums[j];

}

for(i=0;i<nums1.length;i++){   //输出新数组

                         System.out.print(nums1[i]+" ");

}

}else{

System.out.println("输出错误");

}

数组和内存:

int score=new int [5];

二维数组

数据类型[][]  数组名 =new 数据类型[数组长度][数组长度];

数据类型[][] 数组名=new 数据类型{{},{},{}};

int[][] arr=new int[3][3];

二维数组和内存

Arrays类

Arrays.方法(数组名);

方法名称

说明

boolean equals(array1,array2)

比较array1和array2两个数组是否相等

sort(array)

对数组array的元素进行升序排列

String toString(array)

将一个数组array转换成一个字符串

void fill(array,val)

把数组array所有元素都赋值为val

copyOf(array,length)

把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致

int binarySearch(array, val)

查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)

ps:copyOf中如果新的length值小于数组长度,这输出数组前length的值,若大于原数组长度,后续输出默认值

    bingrySearch在使用是必须先使用先进行sort处理,否者可能会导致精度不准确

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值