2012-10-19 27 views
2

怎么做的Hashmap我有一个像如何使用散列表存储值的列表?使用以下格式

{"tname":"Learning Ratio and Proportion Concepts and practice assessment","gname":"Sixth grade"}, 
{"tname":"Number System","gname":"Sixth grade"}, 
{"tname":"quations and expression","gname":"Seventh grade"},{"tname":"Geometry","gname":"Seventh grade"} 

我希望保存为

list<String>={"Sixth grade","Seventh grade"} 

list(list<String>)={{"Learning Ratio and Proportion Concepts and practice assessment","Number System"},{"quations and expression","Geometry"}} 

任何一个可以帮助我感谢的价值列表...

+0

键值只能在地图中出现*一次*。你不止一次使用过tname和gname。你想要3张地图还是1张地图? –

+0

只有一张地图... – sureshkumar

+0

然后tname和gname只能在地图中出现一次。 –

回答

0

我猜你想存储书籍每档次需要。

enum Grades 
    { 
    SIXTH_GRADE, SEVENTH_GRADE; 
    } 

    public static void main(String[] args) throws IOException 
    { 
    Map<Grades, List<String>> literature = new HashMap<Grades, List<String>>(); 
    literature.put(Grades.SIXTH_GRADE, new ArrayList<String>(Arrays.asList("Learning Ratio and Proportion Concepts and practice assessment","Number System"))); 
    literature.put(Grades.SEVENTH_GRADE, new ArrayList<String>(Arrays.asList("Equations and expression","Geometry"))); 

    // get books for 6th grade 
    List<String> books6th = literature.get(Grades.SIXTH_GRADE); 

    for (String book : books6th) 
     System.out.println(book); 

    // get books for 7th grade 
    List<String> books7th = literature.get(Grades.SEVENTH_GRADE); 

    Collection<List<String>> allBooks = literature.values(); // tname data 
    Set<Grades> allGrades = literature.keySet(); // data associated with gname 
    } 

我甚至会考虑创建像ISBN号,价格等成员class Book但是,这取决于你的使用情况。

我在这里使用了枚举,而不是字符串,所以地图不太容易出错。例如,如果有人偶尔写"6th grade"而不是"sixth grade",当然你也可以使用字符串常量。

随着枚举你可以使用一个EnumMap,而不是像HashMap

Map<Grades, List<String>> literature = new EnumMap<Grades, List<String>>(Grades.class);

0

使用ArrayList与哈希地图

HashMap<String,ArrayList<String[]>> map = new HashMap<String,ArrayList<String[]>>(); 

    ArrayList<String[]> theList1 = new ArrayList()<String[]>(); 

    theList1.add(new String[] {"Learning Ratio and Proportion Concepts and practice assessment","Sixth grade"}); 

    map.put("tname", theList1); 
+0

我得到类似HashMap的参数的错误数量错误;它不能用参数参数化> – sureshkumar

+2

HashMap需要2个参数,你只能放一个。例如:HashMap > –

+0

是正确更新的答案 –

相关问题