当前位置: 首页 > 面试题库 >

获取HashMap值的计数数量

燕靖
2023-03-14
问题内容

使用此链接中的代码将文本文件内容加载到GUI:

Map<String, String> sections = new HashMap<>();
Map<String, String> sections2 = new HashMap<>();
String s = "", lastKey="";
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
    while ((s = br.readLine()) != null) {
        String k = s.substring(0, 10).trim();
        String v = s.substring(10, s.length() - 50).trim();
        if (k.equals(""))
            k = lastKey;
        if(sections.containsKey(k))
            v = sections.get(k) + v; 
        sections.put(k,v);
        lastKey = k;
    }
} catch (IOException e) {
}
System.out.println(sections.get("AUTHOR"));
System.out.println(sections2.get("TITLE"));

如果input.txt的内容为:

AUTHOR    authors name
          authors name
          authors name
          authors name
TITLE     Sound, mobility and landscapes of exhibition: radio-guided
          tours at the Science Museum

现在,我想计算HashMap中的值,但是sections.size()计算存储在文本文件中的所有数据行。

我w’d想问我怎么能算的项目,即价值vsections?根据 作者的姓名 ,我怎么得到 4 号? __


问题答案:

由于AUTHOR具有1对多的关系,因此应将其映射到List结构而不是String

例如:

Map<String, ArrayList<String>> sections = new HashMap<>();
Map<String, String> sections2 = new HashMap<>();
String s = "", lastKey="";
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
    while ((s = br.readLine()) != null) {
        String k = s.substring(0, 10).trim();
        String v = s.substring(10, s.length() - 50).trim();
        if (k.equals(""))
            k = lastKey;

        ArrayList<String> authors = null;
        if(sections.containsKey(k))
        {
            authors = sections.get(k);
        }
        else
        {
            authors = new ArrayList<String>();
            sections.put(k, authors);
        }
        authors.add(v);
        lastKey = k;
    }
} catch (IOException e) {
}

// to get the number of authors
int numOfAuthors = sections.get("AUTHOR").size();

// convert the list to a string to load it in a GUI
String authors = "";
for (String a : sections.get("AUTHOR"))
{
    authors += a;
}


 类似资料:
  • 我试图在数据帧中找到空值。虽然我回顾了Stackoverflow的以下文章,其中描述了确定空值的过程,但我很难对我的数据集执行相同的操作。 如何计算熊猫数据帧中列中的楠值 工作代码: 我做错了什么?

  • 问题内容: 我有一个如下所示的Pandas DataFrame: 我想跨列获取某个值的计数。所以我的预期输出是这样的: 我知道如何跨行执行此操作,但是对列执行此操作有点奇怪?请帮助我解决这个问题吗?谢谢。 问题答案: 首先将其堆叠,然后使用value_counts:

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 4年前关闭。 改善这个问题 我有一个表user_places像这样: 我正在尝试获取用户的最新recorded_date和他最常访问的地点的名称。 问题答案: 如果数据不是太大,则可以在MySQL中使用此技巧:

  • 说我有一个地图(myMap)的字符串和对象-地图 如何在myMap中获得K. name每次出现的次数并将其存储在新地图中?新地图将显示K. Name作为键,其值将是它在myMap中出现的次数

  • 我有一个如下格式的文本文件 我有一个类对象Hmp,它有两个字符串变量来存储问题(q1, q2, q3,...)和答案(a1, a2, a3,...)。我试图做的是保持模块id作为键,我想用值填充哈希图作为对象的数组列表(对象Hmp)。反过来,我将键存储在字符串的数组列表中。 在下面的代码段中, *l_ext_keys*是存储键的字符串数组列表,*l_extract*是HashMap 问题 Hash

  • 我有一个数组。但数组大小并没有限制。 假设这个数组是那样的 我怎样才能找到价格的总价值? 我必须使用javascript找到总价值?