作者coolcomm (coolcomm)
看板java
標題Re: [問題] 請問java有像asp的dictionary這樣的東西
時間Tue Mar 12 14:11:39 2013
※ 引述《smsim (crazyM)》之銘言:
: 再次謝謝PsMonkey的回覆.
: 我有找到一個範例
: http://inonat.blogspot.tw/2011/04/java-hashmap.html
: 但有個問題, 範例 HashMap < Name, LinkedList < NameDistancePair > > 裡,
: 沒有教怎麼讀出資料, 請問該怎麼讀出資料呢?
: 這裡put資料的語法
: HashMap<Name, LinkedList<NameDistanePair>> test=new HashMap(11);
: LinkedList cs=new LinkedList<NameDistanePair>();
: cs.add(new NameDistanePair("LS",7));
: cs.add(new NameDistanePair("CL",20));
: test.put(new Name("CS"),cs);
: 該怎麼get 呢?
: 請大大解惑~~萬分感激
你給的那個網頁把hash的實作設成static了 這根本不是題目的原意...
--
public class Vertex {
private String name;
Vertex() {}
public Vertex(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public int hashCode() {
// 省略 ... 但這才是最重要的部分
}
@Override
public boolean equals(Object that) {
// 省略 ...
}
}
public class Edge {
private Vertex dest;
private int length;
// 省略 ... 同樣要override hashCode和equals
}
// 接著再用Map<Vertex, HashSet<Edge>>把所有物件放進去就好了
--
另外 在宣告帶有泛型的物件時 左邊和右邊都要有泛型型態
Map<Vertex, HashSet<Edge>> map = new HashMap<Vertex, HashSet<Edge>>();
但constuctor的確實型態可省略 只需寫一對角括弧
Map<Vertex, HashSet<Edge>> map = new HashMap<>();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.178.130
→ abola921:java7 的才能省略 5~6都要乖乖的加到滿 03/12 14:19
→ ssccg:這網頁哪有把所有東西設static? 只有hash function吧 03/12 14:43
已修改。
推 LaPass:原來現在可以省略了啊.... 我都不知道.... 03/12 15:06
※ 編輯: coolcomm 來自: 114.43.178.130 (03/12 15:13)
→ pcyu16:雖然 Object 已經有 equals/hashcode 了 03/12 16:23