She*_*lam 12 java hashmap map key-value data-structures
HashMap savedStuff = new HashMap();
savedStuff.put("symbol", this.symbol); //this is a string
savedStuff.put("index", this.index); //this is an int
Run Code Online (Sandbox Code Playgroud)
给我警告:
HashMap is a raw type. References to generic type HashMap<K,V> should be parameterized
Run Code Online (Sandbox Code Playgroud)
HashMap<String, Object> savedStuff = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)
当然,在提取元素时,您仍需要小心使用正确的类型.
您需要使用泛型,如下所示:
Map<String, Object> savedStuff = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)
我不确定您要做什么,但由于您提供的示例使用硬编码字符串来索引数据,因此您似乎知道要将哪些数据分组在一起。如果是这样的话,那么 Map 可能不是一个好的选择。更好的方法是从通常分组的数据中创建一个类:
public class SavedStuff {
private int index;
private String symbol;
public SavedStuff(int index, String symbol) {
this.index = index;
this.symbol = symbol;
}
public int getIndex() {
return index;
}
public String getSymbol() {
return symbol;
}
}
Run Code Online (Sandbox Code Playgroud)
这允许您的客户端代码执行以下操作:
SavedStuff savedStuff = ...
String symbol = savedStuff.getSymbol();
Run Code Online (Sandbox Code Playgroud)
而不是这个:
Map<String, Object> savedStuff = ...
String symbol = savedStuff.get("symbol");
Run Code Online (Sandbox Code Playgroud)
前一个示例不那么脆弱,因为您没有使用字符串常量索引数据。它还为您提供了在分组数据之上添加行为的位置,这使您的代码更加面向对象。
| 归档时间: |
|
| 查看次数: |
35210 次 |
| 最近记录: |