写点什么

【Java 笔记】数组的处理方法,idea 搭建 springboot 入门

用户头像
极客good
关注
发布于: 刚刚

}


}


结果为



//循环打印


int[] aa = {1,2,3};


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


System.out.println(aa[i]);


}


结果为


for each 循环

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


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


System.out.println(arr[i]);


}


for(int a1:arr){


System.out.println(a1);


}


这两个循环的结果是一样的,都是打印从 0 到 4 的数值

数组复制(复制地址)

在 Java 中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组


package test;


public class ArrayDemo1 {


public static void main(String[] args) {


//定义第二个数组的时候把第一个数组的地址赋值给第二个数组


int[] arr1 = new int[2];


int[] arr2 = arr1;


//对 arr1 进行赋值并打印


arr1[0] = 1;


arr1[1] = 2;


System.out.println(arr1[0]+" "+arr1[1]);


//修改 arr2[0]中的值为 3,打印 arr1 和 arr2


arr2[0] = 3;


System.out.println(arr1[0]+" "+arr1[1]);


System.out.println(arr2[0]+" "+arr2[1]);


}


}


结果为



可以发现,arr1 和 arr2 指向的是同一个地址,所以修改 arr2 中的值,


arr1 中的值也会被改变

数组复制(复制值)

如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用 Arrays 类的 copyOf()方法与 copyOfRange()方法


copyOf()方法是复制旧数组里面的值到指定长度的新数组中。


copyOfRange()方法是将指定数组的指定长度复制到一个新数组中。


1、copyOf()方法 —— copyOf(arr,int newlength)


package test.ArrayDemo;


import java.util.Arrays;


public class ArrayDemo3 {


public static void main(String[] args) {


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


//旧数组 arr 中的值被复制到了指定长度为 5 的新数组中


int[] new_arr = Arrays.copyOf(arr,5);


for(int i : new_arr){


System.out.println(i);


}


}


}


/*


如果数组元素是数值型,那么多余的元素将被赋值为 0;如果数组元素是布尔型,则将赋值为 false。


相反,如果长度小于原始数组的长度,则只拷贝最前面的数据元素。


*/


结果为


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码



其实像下面这样输出更好看一些


System.out.println(Arrays.toString(new_arr));



2、copyOfRange()方法 —— copyOfRange(arr, int start, int stop); 后面两个参数定义从旧数组中截取从哪到哪的数值


package test.ArrayDemo;


import java.util.Arrays;


public class ArrayDemo3 {


public static void main(String[] args) {


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


int[] new_arr = Arrays.copyOfRange(arr,0,2);


System.out.println(Arrays.toString(new_arr));


}


}


结果为


数组元素查找(查找指定元素第一次在数组中出现的索引)

package test1;


import java.util.Scanner;


public class ArrayDemo1 {


public static void main(String[] args) {


Scanner sc = new Scanner(System.in);


int input = sc.nextInt();


int[] a = {12,34,25,31,15};


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


if(a[i]==input){


System.out.println("索引是"+i);


break;


}


if(i==a.length-1 && a[i]!=input){


System.out.println("not found!");


}


}


}


}


结果为



反转数组

//方法一


package test.ArrayDemo;


import java.util.Arrays;


public class ArrayDemo2 {


public static void main(String[] args) {


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


System.out.println(Arrays.toString(i));


int l = i.length;


int[] m = new int[l];


int count = 0;


for(int n=l-1;n>=0;n--){


m[count] = i[n];


count++;


}


System.out.println(Arrays.toString(m));


}


}


结果为



上面的代码可以简化为


int[] arr= {6,7,8,9,10};


for(int s=0,e=arr.length-1; s<=e; s++,e--) {


int temp = arr[s];


arr[s] = arr[e];


arr[e] = temp;


}


System.out.println(Arrays.toString(arr));


结果是一样的


//方法二


int[] arr= {6,7,8,9,10};


for(int x=0; x<arr.length/2; x++) {


int temp = arr[x];


arr[x] = arr[arr.length-1-x];


arr[arr.length-1-x] = temp;


}


System.out.println(Arrays.toString(arr));


结果为


数组排序

int[] a = {12,5,16,53,42};


Arrays.sort(a);


System.out.println(Arrays.toString(a));


结果为


冒泡排序

package test1;


import java.util.Arrays;


public class BubbleSort1 {


public static void main(String[] args) {


int[] a = {12,5,16,53,42};


int temp;


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

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
【Java笔记】数组的处理方法,idea搭建springboot入门