Array类
数组赋值:通过fill方法
数组排序:通过sort方法,升序
比较数组:通过equals方法比较数组中元素值是否相等
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找操作
fill:将指定的字节值分配给指定字节数组的每个元素
a:要填充的数组
val:要存储在数组的所有元素中的值
冒泡排序
两层循环,外层冒泡轮数,里层一次比较
引入第三方变量//真的好简单呀
import java.util.Arrays; public class Array05 { public static void main(String[] args) { //冒泡排序 int [] b = {23,8,45,43,12,100}; paopao(b); System.out.println(Arrays.toString(b)); } public static int[] paopao(int[]a){ 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 temp = a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } return a; } }
稀疏数组
当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组
稀疏数组的处理方式是:
记录数组一共有几行几列,有多少个不同值
把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
public class Array06 { //稀疏数组 public static void main(String[] args) { int[][] a = new int[10][10]; a[0][1] = 1; a[1][1] = 2; //打印原始数组 System.out.println("打印原始数组"); //遍历数组 for (int i = 0;i<10;i++){ for(int j=0;j<10;j++){ System.out.print(a[i][j]+"\t"); } System.out.println(); } //打印稀疏数组 //获取有效数据 int sum = 0; for (int i = 0; i <10 ; i++) { for (int j = 0; j <10; j++) { if(a[i][j]!=0){ sum++; } } System.out.println(sum); } //创建一个稀疏数组 int[][]array1 = new int[sum+1][3]; array1[0][0] = 10; array1[0][1] = 10; array1[0][2] = sum; //遍历二维数组,将非0的值存放到稀疏数组里面 int count =0; for (int b=0;b<array1.length;b++){ for (int c = 0; c <array1[b].length ; c++) { if (array1[b][c]!=0){ array1[count][0]=b; array1[count][1]=c; array1[count][2]=array1[b][c]; } } System.out.println("打印稀疏数组"); } //遍历稀疏数组 for(int d=0;d<array1.length;d++){ System.out.println(array1[d][0]+"\t"+ array1[d][1]+"\t"+ array1[d][2]+"\t"); } }