如何从ArrayList <hashtable <string,arraylist <string =“”>&gt;&gt;获取值

时间:2016-04-28 15:11:35

标签: java string arraylist hashtable

我有一个能够从多个文件中读取数据的函数,具有以下结构:

id  date    temp    psal
1   2016/02/01  37.6    35.9
2   2016/02/02  30.3    35.7
3   2016/02/03  28.2    36.8
4   2016/02/04  27.7    37.7
5   2016/02/05  28.7    37.9
6   2016/02/06  28.7    37.9

功能是:

ArrayList<Hashtable<String, ArrayList<String>>> processedFilesArray = ReadFiles(files);

如果我尝试使用例如:

来检索数据
System.out.println(processedFilesArray.get(0));

然后我得到以下回复:

{Psals=[35.9, 35.7, 36.8, 37.7, 37.9, 37.9], Temps=[37.6, 30.3, 28.2, 27.7, 28.7, 28.7], ids=[1, 2, 3, 4, 5, 6], DateStrings=[2016/02/01, 2016/02/02, 2016/02/03, 2016/02/04, 2016/02/05, 2016/02/06]}

我的问题是: 如何通过sepparate获取键的不同值(Temps,Psals,id等)以使用jfreechart绘制它们?

提前致谢

3 个答案:

答案 0 :(得分:1)

您可以通过以下方式获取密钥和值:

//Each hastTable of proccesedFilesArray
     for(Hashtable<String,ArrayList<String>> processedFile : processedFilesArray){
        //Each entrySet of proccesedFile
        for(Entry<String, ArrayList<String>> entry : processedFile.entrySet()){
            //Filter here by key or value with if conditions
            String key = entry.getKey();
            ArrayList<String> listValue = entry.getValue();//List of Strings
            for(String value : listValue){
               //each value per hashtable key
            }

        }
    }

我真的不知道你想如何使用它,但这可能是一种迭代列表并获取每条记录值的方法。

答案 1 :(得分:1)

您可以通过方法keySet()获取Hashtable中的键列表,该列表返回键集。

您可以将Set转换为Array列表,如下所示: -

  

ArrayList keyList = new   的ArrayList(processedFilesArray.get(0).keySet());

有关keySet http://www.tutorialspoint.com/java/util/hashmap_keyset.htm

的更多信息

答案 2 :(得分:1)

我终于通过使用:

在Hitesh响应之后解决了这个问题
ArrayList keyList = new ArrayList(processedFilesArray.get(1).values());
    System.out.println(keyList.get(0));

这将返回第二个文件中的第一组(Psals):

    [35.9, 35.7, 36.8, 37.7, 37.9, 37.9]

谢谢你们的帮助!!