今天學 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])
這行改過來就是大到小了