作者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
1F:→ abola921:java7 的才能省略 5~6都要乖乖的加到满 03/12 14:19
2F:→ ssccg:这网页哪有把所有东西设static? 只有hash function吧 03/12 14:43
已修改。
3F:推 LaPass:原来现在可以省略了啊.... 我都不知道.... 03/12 15:06
※ 编辑: coolcomm 来自: 114.43.178.130 (03/12 15:13)
4F:→ pcyu16:虽然 Object 已经有 equals/hashcode 了 03/12 16:23