題目1:創建一個名為Gerbil的類,該類擁有一個整數域gerbilNumber,通過構造器初始化gerbilNumber。創建方法hop()顯示該對象的gerbilNumber,以及“is hopping.” 創建一個ArrayList,並將Gerbil對象添加到該List中。用get()方法遍歷 ...
題目1:創建一個名為Gerbil的類,該類擁有一個整數域gerbilNumber,通過構造器初始化gerbilNumber。創建方法hop()顯示該對象的gerbilNumber,以及“is hopping.” 創建一個ArrayList,並將Gerbil對象添加到該List中。用get()方法遍歷List中所有的Gerbil對象,並調用hop()方法。
解答1:
import java.util.*; class Gerbil{ private int gerbilNumber; public Gerbil(int number){ gerbilNumber = number; } public void hop(){ System.out.println("Gerbil "+gerbilNumber+" is hopping."); } } public class Exercise1{ public static void main(String[] args){ List<Gerbil> gerbils = new ArrayList<Gerbil>(); for(int i = 0; i < 5; i++){ gerbils.add(new Gerbil(i)); } for(int i = 0; i < gerbils.size(); i++){ gerbils.get(i).hop(); } } } /* output Gerbil 0 is hopping. Gerbil 1 is hopping. Gerbil 2 is hopping. Gerbil 3 is hopping. Gerbil 4 is hopping. */
分析:
- ArrayList對象被向上轉型為List介面。在使用Java容器類時,大部分情況下只需要和介面打交道,只需要在創建容器類對象時指明對象類型。
- List可以簡單看作是具有自動擴容功能的數組。向List中添加新元素用add()方法,獲取元素用get()方法。
- List介面的具體實現包括ArrayList和LinkedList。
- List和List<T>的區別在於編譯時是否進行類型校驗。
題目2:實現一個存儲整形元素的Set,加入隨機整數,演示Set的元素不能重覆。
解答2:
import java.util.*; public class Exercise2{ public static void main(String[] args){ Set<Integer> integers = new HashSet<Integer>(); Random rand = new Random(47); int num; for(int i = 0; i < 10; i++){ num = rand.nextInt(6); System.out.print(num+" "); integers.add(num); } System.out.println(); for(int i : integers) System.out.print(i+" "); } } /* output 2 5 1 5 1 5 4 2 0 1 0 1 2 4 5 */