Java 學習記錄 38 — Arrays

張小雄
3 min readFeb 6, 2021

--

今天學 array

int[] myIntArray = new int[10];
myIntArray[0] = 50;
System.out.println(myIntArray[0]);

輸出結果:

50

第一行是創了 int array ,使其裡面有 10 個位置,能存 10 個int數據。

Java 的 1 是從 0 開始算

所以我們的 1 ~ 10

Java 等於是 0 ~ 9

所以第二行是把 50 存到第一個位置 0

int[] myIntArray = {1,2,3,4,5};
System.out.println(myIntArray[0]);
System.out.println(myIntArray[1]);
System.out.println(myIntArray[2]);
System.out.println(myIntArray[3]);
System.out.println(myIntArray[4]);

輸出結果:

1

2

3

4

5

int[] myIntArray = new int[10];for (int i = 0; i < myIntArray.length; i++) {
myIntArray[i] = i * 10;
}
for (int i = 0; i < myIntArray.length; i++) {
System.out.println("Element " + i + ", value is: " + myIntArray[i]);
}

輸出結果:

Element 0, value is: 0

Element 1, value is: 10

Element 2, value is: 20

Element 3, value is: 30

Element 4, value is: 40

myIntArray.length array的長度 就是array裡面有幾個位置

用 for 自動填入 位置 跟 vlalue

public static void main(String[] args) {
int[] myIntArray = new int[5];
for (int i = 0; i < myIntArray.length; i++) {
myIntArray[i] = i * 10;
}
printArray(myIntArray);
}
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.println("Element " + i + ", value is: " + array[i]);
}
}

輸出結果:

Element 0, value is: 0

Element 1, value is: 10

Element 2, value is: 20

Element 3, value is: 30

Element 4, value is: 40

創一個 method 來 print array

private static Scanner scanner = new Scanner(System.in);public static void main(String[] args) {
int[] myIntegers = getIntegers(3);
for (int i = 0; i < myIntegers.length; i++) {
System.out.println("Element " + i + ", type value was " + myIntegers[i]);
}
}private static int[] getIntegers(int number) {
System.out.println("Enter " + number + " integer value.\r");
int[] values = new int[number];
for (int i = 0; i < values.length; i++) {
values[i] = scanner.nextInt();
}
return values;
}

輸出結果:

Enter 3 integer value.

5

6

7

Element 0, type value was 5

Element 1, type value was 6

Element 2, type value was 7

用輸入的方式把數據存入 array 裡

public class array {    private static Scanner scanner = new Scanner(System.in);    public static void main(String[] args) {
int[] myIntegers = getIntegers(3);
for (int i = 0; i < myIntegers.length; i++) {
System.out.println("Element " + i + ", type value was " + myIntegers[i]);
}
System.out.println("The average is " + getAverage(myIntegers));
} private static int[] getIntegers(int number) {
System.out.println("Enter " + number + " integer value.\r");
int[] values = new int[number];
for (int i = 0; i < values.length; i++) {
values[i] = scanner.nextInt();
}
return values;
}
public static double getAverage(int[] array){
double sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return sum / array.length;
}
}

輸出結果:

Enter 3 integer value.

10

20

30

Element 0, type value was 10

Element 1, type value was 20

Element 2, type value was 30

The average is 20.0

再弄了一個 average 的 method

來算出 前面輸入的 array 裡的總value的平均

小挑戰:

Create a program using arrays that sorts a list of integers in descending order.

Descending order is highest value to lowest.

In other words if the array had the values in it 106, 26, 81, 5, 15 your program should

ultimately have an array with 106,81,26, 15, 5 in it.

Set up the program so that the numbers to sort are read in from the keyboard.

Implement the following methods — getIntegers, printArray, and sortIntegers

getIntegers returns an array of entered integers from keyboard

printArray prints out the contents of the array

and sortIntegers should sort the array and return a new array containing the sorted numbers

you will have to figure out how to copy the array elements from the passed array into a new

array and sort them and return the new sorted array.

參考答案:

import java.util.Scanner;public class ArrayExercise {    private static Scanner scanner = new Scanner(System.in);    public static void main(String[] args) {        int[] myIntegers = getIntegers(3);
printIntegers(sortIntegers(myIntegers));
} private static int[] getIntegers(int number) {
System.out.println("Enter " + number + " integer value.\r");
int[] values = new int[number];
for (int i = 0; i < values.length; i++) {
values[i] = scanner.nextInt();
}
return values;
}
private static void printIntegers(int[] numbers) {
for (int i = 0; i < numbers.length; i++) {
System.out.println("Element " + i + ", type value was " + numbers[i]);
}
}
private static int[] sortIntegers(int[] numbers) {
for (int a = 0; a < numbers.length; a++) {
for (int b = 0; b < numbers.length; b++) {
if (numbers[a] < numbers[b]) {
int temp = numbers[b];
numbers[b] = numbers[a];
numbers[a] = temp;
}
}
}
return numbers;
}}

分了幾天做,搞到忘記題目,不小心做成相反

if (numbers[a] > numbers[b])

這行改過來就是大到小了

--

--

張小雄
張小雄

Written by 張小雄

記錄成為軟體工程師的過程

No responses yet