数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法供我们调用,但API中提供了一个工具类Arrys供我们使用,从而可以对数据对象进行一些基本的操作。 查看JDK帮助文档 Arrays类的方法都是static修饰的静态方法。在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用;(注意是“不用”而不是“不能”) 具有以下常用功能:
给数组赋值:通用fill方法。 对数组排序:通过sort方法,按升序 比较数组:通过equals方法比较数组中元素值是否先相等。 查找元素组元素:通过binarySearch方法能对排序好的数组进行二分查找发操作。
package com. huang. array ;
import java. util. Arrays ;
public class ArrayDemo08 {
public static void main ( String [ ] args) {
int [ ] a = { 1316 , 464 , 64 , 6 } ;
printArray ( a) ;
System . out. println ( "==============" ) ;
Arrays . sort ( a) ;
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. print ( "[" ) ;
}
if ( i== a. length- 1 ) {
System . out. print ( a[ i] + "]" ) ;
} else {
System . out. print ( a[ i] + ", " ) ;
}
}
}
}
冒泡排序
冒泡排序无疑是最为出名的排序算法之一;总共有八大排序 冒泡排序相当简单;两层循环,外层冒泡轮数。里层依次比较,代码界人人皆知。 我们看到嵌套循环;应该立马就可以得出这个算法的时间复杂度O(on)
package com. huang. array ;
import java. util. Arrays ;
public class ArrayDemo10 {
public static void main ( String [ ] args) {
int [ ] array = { 1 , 5 , 99 , 32 , 56 , 21 , 16 } ;
int Temp ;
for ( int i = 0 ; i < array. length; i++ ) {
for ( int j = 0 ; j < array. length- 1 - i; j++ ) {
if ( array[ j] < array[ j+ 1 ] ) {
Temp = array[ j] ;
array[ j] = array[ j+ 1 ] ;
array[ j+ 1 ] = Temp ;
}
}
}
System . out. println ( Arrays . toString ( array) ) ;
}
}
稀疏排序
当一个数组中大部分元素为0,或者为同一值得数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方式是:
记录数组一共有几行几列。有多少个不同值。 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
package com. huang. array ;
public class Test2 {
public static void main ( String [ ] args) {
int [ ] [ ] array1 = new int [ 11 ] [ 11 ] ;
array1[ 1 ] [ 2 ] = 1 ;
array1[ 2 ] [ 3 ] = 2 ;
System . out. println ( "输出原始的数组" ) ;
for ( int [ ] add : array1) {
for ( int eve : add) {
System . out. print ( eve + "\t" ) ;
}
System . out. println ( ) ;
}
System . out. println ( ) ;
int sum = 0 ;
for ( int i = 0 ; i < 11 ; i++ ) {
for ( int j = 0 ; j < 11 ; j++ ) {
if ( array1[ i] [ j] != 0 )
sum++ ;
}
}
System . out. println ( "sum=" + sum) ;
int sparseArr[ ] [ ] = new int [ sum + 1 ] [ 3 ] ;
sparseArr[ 0 ] [ 0 ] = 11 ;
sparseArr[ 0 ] [ 1 ] = 11 ;
sparseArr[ 0 ] [ 2 ] = sum;
int count = 0 ;
for ( int i = 0 ; i < 11 ; i++ ) {
for ( int j = 0 ; j < 11 ; j++ ) {
if ( array1[ i] [ j] != 0 ) {
count++ ;
sparseArr[ count] [ 0 ] = i;
sparseArr[ count] [ 1 ] = j;
sparseArr[ count] [ 2 ] = array1[ i] [ j] ;
}
}
}
}
}