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);
}
}
效果圖如下: