importjava.util.Arrays;publicclassArrDemo{publicstaticvoidmain(String[] args){//动态初始化int[] a =newint[5];//元素为初始值// int a[] = new int[5]; //非传统java//静态初始化int[] b ={5,3,2,4,1};// int[] b = new int[]{1, 2, 3, 4, 5}; //时代的弃子int[] c ={1,2,3,4,5,};//java1.8后可用//数组长度用length访问for(int i =0; i < c.length;++i){System.out.print(c[i]+" ");}System.out.println();//二维数组初始化int[][] d =newint[2][];//两个空指针的数组int[][] e =newint[2][3];//有元素默认初始值int[][] f ={{1,2,3},{4,5,6}};//打印数组System.out.println(Arrays.toString(e[0]));//全元素赋值Arrays.fill(a,99);System.out.println(Arrays.toString(a));//指定元素赋值,范围左闭右开Arrays.fill(a,1,3,-1);System.out.println(Arrays.toString(a));//自然排序(从小到大)int[] a2 ={3,2,1,4,5};Arrays.sort(a2);System.out.println(Arrays.toString(a2));String[] a3 ={"d","c","a","b","f"};Arrays.sort(a3);System.out.println(Arrays.toString(a3));//二分查找//有序数组int index =Arrays.binarySearch(a2,3);System.out.println(index);//无序数组,未经自然排序
index =Arrays.binarySearch(b,3);System.out.println(index);//复制数组-扩容部分补默认值int[] a4 =Arrays.copyOf(a2, a2.length+2);System.out.println(Arrays.toString(a4));}}
元素个数获取方法
集合用size()方法
字符串用length()方法
数组用length变量
排序法
冒泡排序
publicclassBubble{publicstaticvoidmain(String[] args){int[] a ={1,2,3,4,5};for(int i =0; i < a.length-1;++i){for(int j =0; j < a.length-1-i;++j){if(a[j]< a[j+1]){int tmp = a[j];
a[j]= a[j+1];
a[j+1]= tmp;}}}//输出结果for(int x: a){System.out.print(x +" ");}}}
选择排序
publicclassSelect{publicstaticvoidmain(String[] args){int[] a ={1,2,3,4,5};for(int i =0; i < a.length-1;++i){int k = i;for(int j = i+1; j < a.length;++j){if(a[j]> a[k]){
k = j;}}int t = a[k];
a[k]= a[i];
a[i]= t;}System.out.println(Arrays.toString(a));}}
插入排序
基于交换实现
publicclassInsert{publicstaticvoidmain(String[] args){int[] b ={1,2,3,4,5};//i号及以前的元素是已经排好序的for(int i =0; i < b.length-1; i++){//将i+1号安置到前面的有序子序列中for(int j = i+1; j >0; j--){if(b[j]> b[j-1]){int temp = b[j];
b[j]= b[j-1];
b[j-1]= temp;}else{break;}}}System.out.println(Arrays.toString(b));}}
基于移位实现
publicclassInsert{publicstaticvoidmain(String[] args){int[] b ={1,2,3,4,5};//i号及以前的元素是已经排好序的for(int i =0; i < b.length-1; i++){//将i+1号安置到前面的有序子序列中int t = b[i+1];for(int j = i; j >=0; j--){if(t > b[j]){
b[j+1]= b[j];if(j ==0){
b[0]= t;}}else{
b[j+1]= t;break;}}}System.out.println(Arrays.toString(b));}}
数组的声明public class Main { public static void main(String[] args) { //动态初始化 int[] a = new int[5]; //元素为初始值// int a[] = new int[5]; //旧世界的残党 //静态初始化 int[] b = {1, 2, 3, 4, 5};// int[] b = new int[]{1, 2,