Arrays类
数组的工具类java.util.Arrays
因为数组对象本身没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作
查看JDK帮助文档
Arrays类中的方法都是static修饰的静态方法,在使用时可以直接使用类名进行调用,而”不用“使用对象来调用(注意:是 不用,而不是 不能)
具有以下功能:
- 给数组赋值:通过fill方法
- 给数组排序:通过sort方法,升序
- 比较数组:通过equals方法比较数组中元素是否相等
- 查找数组元素:通过binarSearch方法能对排序好的数组进行二分查找法操作
package com.dsh.array;
import java.util.Arrays;
public class ArrayDemo06 {
public static void main(String[] args) {
int[] a={1,2,3,4,567,789,1234,45678,5,6,7,8,9,10};
System.out.println(a);//[I@1b6d3586
System.out.println("=======================================");
printArray(a);
System.out.println("===================");
//打印数组元素Arrays.toString
System.out.println(Arrays.toString(a));
System.out.println("===================================");
Arrays.sort(a);//对数组进行排序,升序
System.out.println(Arrays.toString(a));
System.out.println("==============================");
Arrays.fill(a,0);//对数组元素进行赋值
System.out.println(Arrays.toString(a));
System.out.println("========================================");
Arrays.fill(a,5,10,2);//指定数组某段区间内的元素被指定数值填充(赋值),且区间是左闭右开
System.out.println(Arrays.toString(a));
}
public static void printArray(int[]a){
for (int i=0;i<a.length;i++){
if (i==0){
System.out.println("[");
}
if (i==a.length){
System.out.println("]");
}else{
System.out.println(+a[i]+",");
}
}
}
}
冒泡排序
冒泡排序,两层循环,外层冒泡轮数,里层依次比较
package com.dsh.array;
import java.util.Arrays;
public class ArrayDemo07 {
public static void main(String[] args) {
int[] a = {1,5,9,10,234,321,789,12,34,16};
int[] sort = sort(a);//调用自己写的排序方法后,返回一个排序后的数组
System.out.println(Arrays.toString(sort));//递减,如果想输出为递增,则需要将下列代码改为array[j + 1] < array[j]
}
//冒泡排序
//1.比较数组中,两个相邻的元素,若第一个数比第二个数大,则位置交换
//2.每一次比较,都会产生一个最大or最小的数字
//3.依次循环,直到结束
public static int[] sort(int[] array) {
int temp = 0; //先声明一个临时的中间变量
//外层循环,判断需要多少次
for (int i = 0; i < array.length - 1; i++) {
boolean flag=false;//通过flag标识位来减少没有意义的比较
//从内层循环,比较判断两个数,若第一个数比第二个数大,则交换位置
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j + 1] > array[j]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag=true;
}
}
if (flag==false){
break;
}
}
return array;
}
}