我已经在Java中使用地图第一次。 我创建,我创建的字符串与这种结构的控制台上的一个项目:
String = word1 word2 word3, code; //This code is a number, can be the same as the
// Map's key.
然后,每个创建这样一个字符串的时候,我把它保存到一个地图。 创建并保存到地图的一个或多个字符串后,我必须能够向他们展示在控制台,或删除其中之一。
我得到的问题是,添加一个字符串到地图时,被覆盖前一个。
在主类我以这种方式工作:
我一个字符串添加到地图:
musicmap.add(title, autor, format);
我列出的项目:
musicmap.list();
我从地图上删除一个元素:
musicmap.delete(code);
该方法添加(),表()和delete()在其他类这样定义的方法:
Map<Integer, Music> musicMap= new HashMap<Integer, Music>(); //Music is a class
// where is defined a constructor with the
// structure of the strings
public void add(String title, String autor, String format){
int max = 0;
for (Integer mapCode : musicMap.keySet()){
if (mapCode > max){
max = mapCode;
}
}
int newCode = max++;
Music musicItem = new Music(title, autor, format, newCode);
musicMap.put(newCode, musicItem);
}
public void list(){
for (Music item : musicMap.values()){
System.out.println(item.toString());
}
}
public void delete(int code){
musicMap.remove(code);
}
音乐实例只是调用到定义构造函数与音乐列表中的元素(这是标题,作者日期,格式或类型和代码)其他类:
public Music(String title, String autor, String type, int code){
this.setTitle(title);
this.setAutor(autor);
this.setType(type);
this.setCode(code);
}