我想知道是否可以这样做:
Hashtable<String,Integer[]> myhash =new Hashtable();
其中String是一个单词,整数[]将是一个两个位置的数组,第一个,行号和第二个是该单词的次数。
但我真的不知道怎么做put操作。
myhash.put(word, new Integer(n_line,n_times));??
它不起作用,但你会怎么做?
谢谢
答案 0 :(得分:4)
要将新的整数数组放入表中,请使用myhash.put(word, new Integer[]{ n_line,n_times});
但是,我建议为该值创建一个新对象,例如
//Note that I ommitted stuff like modifiers, constructors etc. for simplicity's sake
//In most cases you'd want to expand that class and add what's missing (left to you as an excercise)
class WordCounter {
int lines;
int time;
}
Hashtable<String,WordCounter > myhash =new Hashtable<>();
作为旁注,请注意Hashtable
比HashMap
慢,因为它会同步访问权限,因此除非您需要这种确切的行为,否则您可以尝试使用HashMap
或{{ 1}}而不是。
答案 1 :(得分:3)
尝试
myhash.put(word, new Integer[] {n_line,n_times});
btw Hashtable是一个遗留类,改为使用HashMap
答案 2 :(得分:1)
Integer[] arr = new Integer[]{n_line,n_times};
myhash.put(word, arr);