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

具有列表作为单个键值的属性文件

江丰羽
2023-03-14
问题内容

对于我的程序,我想从属性文件中读取一个键,并从该键关联的值列表中读取。
最近我在尝试那样

public static Map<String,List<String>>categoryMap = new Hashtable<String, List<String>>();


    Properties prop = new Properties();


    try {

        prop2.load(new FileInputStream(/displayCategerization.properties));
        Set<Object> keys = prop.keySet();
        List<String> categoryList = new ArrayList<String>();
        for (Object key : keys) {
            categoryList.add((String)prop2.get(key));
            LogDisplayService.categoryMap.put((String)key,categoryList);
        }
        System.out.println(categoryList);
        System.out.println("Category Map :"+LogDisplayService.categoryMap);

        keys = null;
        prop = null;

    } catch (Throwable e) {
        e.printStackTrace();
    }

我的属性文件如下所示-

A=APPLE
A=ALPHABET
A=ANT
B=BAT
B=BALL
B=BUS

我想要键A应该有一个包含contains [APPLE, ALPHABET,ANT]和B包含的列表[BAT,BALL,BUS]
因此Map应该是这样,{A=[APPLE, ALPHABET,ANT], B=[BAT,BALL,BUS]}但是我
{A=[ANT], B=[BUS]}
在网上搜索了这种方法,但一无所获。我希望有办法。有什么帮助吗?


问题答案:

尝试将属性编写为以逗号分隔的列表,然后在加载属性文件后拆分值。例如

a=one,two,three
b=nine,ten,fourteen

如果您在值中使用逗号,则还可以使用org.apache.commons.configuration并使用AbstractConfiguration.setListDelimiter(char)方法更改值定界符。



 类似资料:
  • 我正在使用一个CSV文件,其中包含一些有关事故的信息。现在我已经创建了事故类型: 我还创建了一个函数,可以读取所有csv文件,将所有事故转换为列表 因此,我们正在处理我还不完全理解的流,我一直在做这个练习,我必须创建一个返回SortedMap的函数 我试过使用收集器。toMap()和收集器。toList()以某种方式使其工作,但我不知道如何做。我已经搜索了一段时间,但我没有找到任何与我的情况类似的

  • 问题内容: 我的ViewValue类定义如下: 在我的代码中,我需要将ViewValue实例列表转换为包含来自相应ViewValue的id字段值的列表。 我用foreach循环来做: } 有没有更好的方法来解决这个问题? 问题答案: 编辑:此答案基于以下想法:您需要对代码中其他位置的不同实体和不同属性执行类似的操作。如果您 只需 要按ID将ViewValues列表转换为Longs列表,则请坚持使用

  • 我已经在stackoverflow和网络上寻找解决方案。我没有见过有效的解决方案,因为可能没有一个帖子完全符合我的用例,它包含文件中的列表和对象结构。 这里有一个例子作为yaml 这是与属性文件相同的示例 我希望能够向我的应用程序提供 teddy.yml 或 teddy.properties 文件以进行配置。 这是我的课程: 我已经尝试了这种设置,使用环境来尝试访问属性,删除前缀,声明一个“Pro

  • 问题内容: 我有一个属性设置器,它通过获取两个字符串并对其进行哈希处理来生成唯一的ID: 我有两个问题: 是否允许(考虑良好的python编码实践)以这种方式编码 如何将两个值传递给设置器? 问题答案: 如何将两个值传递给设置器? 您可以将iterable(元组,列表)传递给setter,例如: 演示:

  • 问题内容: 我想将 每个地图条目转换为-列表中的1个条目作为“键-值” 我搜索了,只发现将值仅映射到List。 我希望将此映射到列表为 等等。 如果我使用foreach,可以很容易地做到这一点,但是我想知道通过流获取它是否可行 问题答案:

  • 问题是我的控制器中有一个spring表单和两个具有相同属性的@ModelAttribute参数。表单的“commandName”参数设置为我的modelAttributes名称之一。令我惊讶的是,不仅将属性映射到用“commandName”指定的模型属性,还映射到第二个属性。 我还没有找到确切的解决方案,除了和我的相似之处:Spring-form多个表单具有相同的模型属性名称属性 但在我的例子中,