程式碼
import java.util.HashMap; import java.util.Map; //集合預設使用 Object 型別,所以 key 與 value 可以是任意型別的物件 public class MapDemo { public static void main(String[] args) { Map map = new HashMap(); //HashMap基於雜湊表的 Map 介面的實作,並允許使用 null 值和 null 鍵 //將成對的Key、valus放入集合,每個鍵最多只能映射到一個值 map.put(100, "中正區"); map.put(103, "大同區"); Object obj=map.get(103); //給Key取出valus System.out.println(obj); String s=(String)obj;//將Object轉換為String System.out.println("字串長度:"+s.length());//讀取字串長度 } }
可以使用泛型,就不需要轉換類別
import java.util.HashMap; import java.util.Map; public class MapDemo2 { public static void main(String[] args) { //< > 泛型,限定 Key 為Integer,valus為 String Map<Integer,String> map = new HashMap<>(); //將成對的Key、valus放入集合 map.put(100, "中正區"); map.put(103, "大同區"); /* 因為當初使用泛型,指定valus為String 所以現在不用Object宣告變數,直接使用String 如果不使用泛型的集合,需要進行轉型,請參照MapDemo */ String value=map.get(103); System.out.println(value); //valus是String,不用轉型 System.out.println("字串長度:"+value.length()); } }
運用之前作過的樂透進行配對
Lotto
import java.util.ArrayList; public class Lotto { private static ArrayList 數字陣列; private static ArrayList 樂透; private static int 索引; private static int 抽出號碼; public static ArrayList 產生一組樂透號碼(){ 建立數字與樂透陣列(); 將42個號碼放進數字陣列(); for (int j=1;j<=6;j++){ 用亂數產生一個陣列索引(); 根據索引從陣列取出號碼(); 將抽出的號碼放進樂透陣列(); }return 樂透; } private static void 建立數字與樂透陣列(){ 數字陣列=new ArrayList(); 樂透=new ArrayList(); } private static void 將42個號碼放進數字陣列(){ for (int i=1;i<=42;i++){ 數字陣列.add(i); } } private static void 用亂數產生一個陣列索引(){ 索引=(int)(Math.random()*數字陣列.size()); } private static void 根據索引從陣列取出號碼(){ Object obj=數字陣列.remove(索引); 抽出號碼=(int)obj; } private static void 將抽出的號碼放進樂透陣列(){ 樂透.add(抽出號碼); } }
使用Map
import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import javax.swing.JOptionPane; public class MapDemo3 { public static void main(String[] args) { ArrayList a = Lotto.產生一組樂透號碼(); ArrayList b = Lotto.產生一組樂透號碼(); System.out.println("a=" + a); System.out.println("b=" + b); //泛型,指定Key為String,value為ArrayList Map<String, ArrayList> map = new HashMap<>(); //成對的Key,valus放入 map.put("張無忌", a); map.put("周芷若", b); /* 因為當初使用泛型,指定valus為String 所以現在不用Object宣告變數,直接使用String */ String name = JOptionPane.showInputDialog("請輸入名字:"); ArrayList value = map.get(name); //將Key帶入取value JOptionPane.showMessageDialog(null, value); } }
沒有留言:
張貼留言