1. 程式人生 > >javaSE練習3——陣列

javaSE練習3——陣列

一、編寫一個簡單程式,要求陣列長度為5,分別賦值10,20,30,40,50,在控制檯輸出該陣列的值。

package com.test;

public class t01 {

public static void main(String[] args) {
// 靜態初始化
int i[] = new int[] { 10, 20, 30, 40, 50 };

// 遍歷陣列
for (int j = 0; j < 5; j++) {
System.out.print(i[j]+" ");
}
}

}

效果圖如下:

 

二、將一個字元陣列的值(neusofteducation)考貝到另一個字元陣列中。

package com.test;

public class t02 {

public static void main(String[] args) {
// 定義源字元陣列
char[] copy = { 'n', 'e', 'u', 's', 'o', 'f', 't', 'e', 'd', 'u', 'c', 'a', 't', 'i', 'o', 'n' };

// 定義新字元陣列
char[] copyTo = new char[7];

/*
* System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);


* src:源陣列; srcPos:源陣列要複製的起始位置; dest:目的陣列; destPos:目的陣列放置的起始位置;
* length:複製的長度
*/
System.arraycopy(copy, 2, copyTo, 0, 7);

System.out.println(new String(copyTo));
}

}

效果圖如下:

 

三、 給定一個有9個整數(1,6,2,3,9,4,5,7,8})的陣列,先排序,然後輸出排序後的陣列的值。

package com.test;

public class t03 {

public static void main(String[] args) {


// 定義陣列
int[] i = { 1, 6, 2, 3, 9, 4, 5, 7, 8 };

java.util.Arrays.sort(i); // 排序

for (int j = 0; j < i.length; j++) {
System.out.print(i[j] + " ");
}
}

}

效果圖如下:

 

四、輸出一個double型二維陣列(長度分別為5、4,值自己設定)的值。

package com.test;

public class t04 {

public static void main(String[] args) {
double[][] dou = new double[5][4];

for (int i = 0; i < dou.length; i++) {
for (int j = 0; j < dou[0].length; j++) {
System.out.println(dou[i][j]);
}
System.out.println();
}

}

}

效果圖如下:

 

五、在一個有8個整數(18,25,7,36,13,2,89,63)的陣列中找出其中最大的數及其下標。

package com.test;

public class t05 {

public static void main(String[] args) {
int[] arr = { 18, 25, 7, 36, 13, 2, 89, 63 };
int max = arr[0];
int maxIndex = 0;

for (int i = 1; i < arr.length; i++) {
if (max <= arr[i]) {
max = arr[i];
maxIndex = i;
}
}
System.out.println("最大值為:" + max + "\n最大值下標為:" + maxIndex);

}

}

效果圖如下:

 

六、

有2個多維陣列分別是 2 3 4   和  1 5 2 8

4 6 8       5 9 10 -3

2 7 -5 -18

按照如下方式進行運算。生成一個2行4列的陣列。此陣列的第1行1列是2*1+3*5+4*2

第1行2列是2*5+3*9+4*7  第2行1列是4*1+6*5+8*2 依次類推。

package com.test;

public class t06 {
public static void main(String[] args) {
int a[][] = { { 2, 3, 4 }, { 4, 6, 8 } };
int b[][] = { { 1, 5, 2, 8 }, { 5, 9, 10, -3 }, { 2, 7, -5, -18 } };

for (int k = 0; k < a.length; k++) {
for (int i = 0; i < b[0].length; i++) {
int num = 0;
for (int j = 0; j < b.length; j++) {
num += a[k][j] * b[j][i];
}
System.out.println(num + " ");
}
System.out.println("");
}
}

}

效果圖如下:

 

七、將一個數組中的元素逆序存放。

package com.test;

import java.util.Scanner;

public class t07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int arr[] = new int[20];

System.out.println("請輸入多個正整數(輸入-1表示結束):");
int i = 0, j;
do {
arr[i] = sc.nextInt();
} while (arr[i - 1] != -1);
System.out.println("請輸入的陣列為:");
for (j = 0; j < i - 1; j++) {
System.out.println(arr[j] + " ");
}
System.out.println("\n陣列逆序輸出為:");
for (j = i - 2; j >= 0; j = j - 1) {
System.out.println(arr[j] + " ");
}
}

}

 

 

八、將一個數組中的重複元素保留一個其他的清零。

package com.test;

public class t08 {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5, 6, 4, 7, 2, 10 };
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr[j] = 0;
}
}
}
}

}

 

 

九、給定一維陣列{ -10,2,3,246,-100,0,5} ,計算出陣列中的平均值、最大值、最小值。

package com.test;

public class t09 {
public static void main(String[] args) {
int arr[] = new int[] { -10, 23, 246, -100, 0, 5 };
int max = arr[0];
int min = arr[0];
int add = arr[0];

for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
} else if (arr[i] > max) {
max = arr[i];
}
add = add + arr[i];
}
System.out.println("最小值:" + min);
System.out.println("最大值:" + max);
System.out.println("平均值:" + add / arr.length);
}

}

效果圖如下: