一维数组概念、声明和使用
数组概念:存储相同数据类型的一组数据
要点:数组中所有元素数据类型相同、数组中所有元素在内存中连续存储
特点:数组是引用类型、新生成的数组对象,引用类型默认值为null;基本类型默认值为各类型的默认值(数字为0,boolean值为false)
Arrays类用法:具体参数和用法查看JDK API文档
copyOf 复制数组
copyOfRange 复制数组范围
equals 判断数组是否相等
sort 数组排序
binarySearch 查找数组
fill 填充数组
System.arraycopy 复制数组
//ArrayTest.java
import java.util.Scanner; import java.util.Arrays; public class ArrayTest { public static void main(String[]args) { arrayDefineTest(); arrayFunctionTest(); } private static void arrayDefineTest() { int[] scores={66,70,80};//直接赋值 //int[] scores=new int[]{66,70,80};与上句代码效果一样 System.out.println(scores.length);//打印数组长度 int[] ids = new int[3];//数组声明和创建指定长度数组,默认值 System.out.println("请依次输入三个数字到数组ids中:"); Scanner input = new Scanner(System.in); for(int i=0;i<3;i++) { ids[i] = input.nextInt(); } for(int i=0;i<3;i++) { System.out.print(ids[i]); System.out.print(" "); } System.out.println(); } private static void arrayFunctionTest() { int [] arrSrc1={1,3,5,6,7}; int [] arrDst1 = Arrays.copyOf(arrSrc1,10);//复制数组 printArray(arrDst1); System.out.println("***************************"); int[] arrDst2=Arrays.copyOfRange(arrSrc1,2,5);//复制数组(范围) printArray(arrDst2); System.out.println("***************************"); int [] arrSrc2={1,3,5,7,6}; boolean isEqual = Arrays.equals(arrSrc1,arrSrc2);//比较数组是否相等 System.out.println("比较结果:"+isEqual); Arrays.sort(arrSrc2);//排序 isEqual = Arrays.equals(arrSrc1,arrSrc2);//比较数组是否相等 System.out.println("排序后比较结果:"+isEqual); System.out.println("***************************"); int index = Arrays.binarySearch(arrSrc2,5);//二分查找,返回下标(找不到时返回负数),排序后使用 System.out.println("index = "+index); System.out.println("***************************"); int[] arrDst3=new int[10]; Arrays.fill(arrDst3,10);//填充值(全部元素) Arrays.fill(arrDst3,2,5,8);//填充值(范围) printArray(arrDst3); System.out.println("***************************"); //使用system类方法复制数组 int [] arrDst4 = new int[10]; System.arraycopy(arrSrc1,0,arrDst4,2,5); printArray(arrDst4); System.out.println("***************************"); } private static void printArray(int [] array) { for(int i=0;i<array.length;i++) { System.out.print(array[i]+" "); } System.out.println(); } }