一、已知數組及其值(一維數組)
int[] a = new int[5];
a[0] = (int) (Math.random() * 100);
a[1] = (int) (Math.random() * 100);
a[2] = (int) (Math.random() * 100);
a[3] = (int) (Math.random() * 100);
a[4] = (int) (Math.random() * 100);
for (int i = 0; i < a.length; i++) {
System.out.print("a數組:" + a[i]+" ; ");
}
1.求出隨機數組中的最小值
//求出隨機數組最小值
//設置一個標識
int flag = 100;
for (int i = 0; i <a.length; i++) {
//把數組每個值依次賦值給中間變量
int val = a[i];
//如果中間變量小於標識,就把值賦值給標識
if (val < flag) {
flag = val ;
}
}
System.out.println("本練習的目的是,找出最小的一個值: "+ tag);
2.反轉隨機數組
//反轉隨機數組
//反轉數組的次數爲數組長度的一半
for (int i = 0; i < a.length/2; i++) {
//最右邊值賦值給中間變量
int val= a[a.length-i-1];
//最左邊值賦值給最右
a[a.length-i-1] = a[i];
//最右邊值賦值給最左
a[i] = val;
}
3.排序隨機數組,
/*
*正序排序,從小到大
*/
//使用兩層循環,方便比較排序
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
//比較兩個緊鄰數值
if(a[i] > a[j]){ // 如果左側數據值較大
int val = a[j]; //右側數值賦值給中間變量
a[j]=a[i]; //左側較大的 賦值給右側
a[i]=val; // 使用中間變量把較小右側值賦值給左側
}
}
}
/**
* 數組倒排序
* */
for (int i = 0; i < a.length; i++) {
for (int j = i+1; j < a.length; j++) {
if(a[i] < a[j]) {
int val = a[j];
a[j] = a[i];
a[i] = val;
}
}
}
4.使用增強for求出隨機數組最大值
/*
* 使用增強for 求出最大值
* */
int max = 0 ;
for (int each : a) {
if(each > max) {
max = each;
}
}
System.out.println(max);
5.合併數組
```java
/**
* 合併數組
* */
//1.創建數組
int [] a = new int [5];
int [] b = new int [5];
//2.使用for循環給兩個隨機數組賦值
for (int i = 0 ; i < a.length; i++ ) {
a[i] = (int) (Math.random()*100);
b[i] = (int) (Math.random()*100);
}
//3.輸出兩個數組的值
System.out.print("a數組的值:");
for (int each : a) {
System.out.print( each +" , ");
}
System.out.println();
System.out.print("b數組的值:");
for (int each : b) {
System.out.print( each +" , ");
}
//4.創建第三個數組,長度爲,上面兩個數組和
int [] c = new int[a.length + b.length];
//5-1.使用System.arraycopy()方法 合併第一個數組
System.arraycopy(a, 0, c, 0, a.length);
//5-2.使用System.arraycopy()方法 合併第一個數組
System.arraycopy(b, 0, c, a.length, b.length);
//6.輸出打印合並後的數組
System.out.println();
System.out.print("c數組的值:");
for (int i : c) {
System.out.print(i+" , ");
}
## 二、二維數組
/*
* 二維數組
* 1.創建一個二維數組
* 2.使用隨機數,給二維數組賦值
* 3.設置隨機數格式爲5x5
* 4.找出二維數組中,最大隨機數
* 5.找出最大隨機數所在座標
* */
//1.創建一個二維數組
int [][] a = new int [5][5];
//2.使用隨機數,給二維數組賦值
for(int i=0;i<a.length;i++)
for(int j=0;j<a[i].length;j++)
{
a[i][j] = (int)(Math.random()*100);
}
//3.設置隨機數格式爲 5x5
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
System.out.print(a[i][j]+ " ");
if (j == 4) {
System.out.println();
}
}
}
//4.找出二維數組中,最大隨機數
int flag = 0;
int x = 0 ;
int y = 0 ;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if(flag < a[i][j]) {
flag = a[i][j];
//5.找出最大隨機數所在座標
x = i ;
y = j ;
}
}
}
System.out.println("找出最大值:" + flag);
System.out.println("座標爲 :"+(x+1) +"||"+(y+1));
1.二維數組轉換成一維數組
/**
*System.arraycopy()方法把二維數組的值 複製給一維數組
*src:要複製的數組(源數組)
*srcPos:複製源數組的起始位置
*dest:目標數組
*destPos:目標數組的下標位置
* length:要複製的長度
*
*/
for (int i =0; i<a.length; i++){
//使用Arrays.toString()方法轉換,輸出效果好看
System.out.println(Arrays.toString(a[i]));
System.arraycopy(a[i],0,b,i*a[0].length,a[0].length);
}
2,數組排序
/*
* 註釋:Arrays.sort():
* 1.支持升序排序
* 2.支持局部升序
* 3.自定義排序
*/
int [] b = {5,2,7,4,8,1};
//默認升序排序
Arrays.sort(b);
//局部排序
Arrays.sort(b,2,4);
Integer[] arr = {5,4,7,9,2,12,54,21,1};
//降序
Arrays.sort(arr, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return b-a;
}
});
System.out.println(Arrays.toString(arr));
}
3.搜索
public static void main(String[] args) {
Integer [] a = {1 , 4 , 9 , 9 , 5, 3, 8};
//
Arrays.sort(a, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
//
System.out.println(Arrays.toString(a));
//獲取指定元素座標
System.out.println(Arrays.binarySearch(a, 9));
4.判斷內容是否相同
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
int b[] = new int[] { 18, 62, 68, 82, 65, 8 };
System.out.println(Arrays.equals(a, b));
5.數組複製
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
// copyOfRange(int[] original, int from, int to)
// 第一個參數表示源數組
// 第二個參數表示開始位置(取得到)
// 第三個參數表示結束位置(取不到)
int[] b = Arrays.copyOfRange(a, 0, 3);
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + " ");
}
6.填充
int a[] = new int[10];
Arrays.fill(a, 5);
System.out.println(Arrays.toString(a));