Java初学心得(二)
数组概述
一,数组基本操作
①一维数组的创建:数组元素类型[] 数组名字=new 数组类型[数组元素个数] 例:int []arr=new int[5];数组长度为5
②初始化一维数组:第一种:int []arr=new int[]{1,2,3,5,25} 第二种:int []arr={34,2,1,3};
③二维数组的创建:数组元素类型 [][]数组名字=new 数组元素类型[第一维长度][第二维长度]
④二维数组初始化:类型 arr[][]={v1,v2,v3....};创建成功后每个元素初值为0
⑤填充替换数组:fill(int []a,int value),将value的值赋值给数组每个元素;fill(int []a,int begin,int end,int v)区段赋值,从begin到end赋值给v
⑥数组排序:Arrays.sort(数组名称)
⑦复制数组:copyOf(数组名,int 长度)返回新数组,复制指定区间数组:copyOfRange(数组名,begin,end)从begin下标开始到end-1下标复制到新数组,返回新数组。
⑧数组查询:在查询之前需对数组进行sort排序,之后用Arrays.binarySearch(数组名,搜索值)返回数组下标,在指定范围内搜索:Arrays.binarySearch(数组名,begin,end,搜索值) 从begin开始到end-1进行搜索,返回下标位置
二,数组排序算法
①冒泡排序:双层循环+比较+交换
②直接选择排序:
package com.输入; import java.util.*; public class imput { public static void main(String[] args) { int arr[]=new int[] {1,8,9,4,5}; for(int i=1;i<arr.length;i++) { int index=0; for(int j=1;j<=arr.length-i;j++) { if(arr[j]>arr[index]) index=j; } int temp=arr[arr.length-i]; arr[arr.length-i]=arr[index]; arr[index]=temp; } for(int i=0;i<arr.length;i++) System.out.print(arr[i]+" "); } }
反转排序:
package com.输入; import java.util.*; public class imput { public static void main(String[] args) { int arr[]=new int[] {1,8,9,4,5}; System.out.println("原数组为:"); for(int i=0;i<arr.length;i++) System.out.print(arr[i]+" "); System.out.println(); System.out.println("反转后数组为:"); for(int i=0;i<arr.length/2;i++) { int temp=arr[i]; arr[i]=arr[arr.length-1-i]; arr[arr.length-1-i]=temp; } for(int i=0;i<arr.length;i++) System.out.print(arr[i]+" "); } }