【Java 笔记】数组的处理方法,idea 搭建 springboot 入门
}
}
结果为
//循环打印
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。
相反,如果长度小于原始数组的长度,则只拷贝最前面的数据元素。
*/
结果为
其实像下面这样输出更好看一些
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++){
评论