繁体   English   中英

在 Java Spring Boot 中将列表转换为分组列表

[英]Convert List to grouped list in Java Spring Boot

我想使用属性转换以下列表以对相似组进行分组,并使用 Java Spring Boot 将子组值连接为以下预期输出。 这是我的代码。

    for (JuniorAreaSubgroup value : lstJuniorAreaSubgroup) {
        juniorAreaSubgroupMap.setJuniorArea(value.getJuniorArea());
        lstSubgroup.add(lstJuniorAreaSubgroup.stream().filter(value.getJuniorArea()) -> 
                String.join(",", value.getSubgroup()));
        juniorAreaSubgroupMap.setSubgroup(lstSubgroup);
        lstSubgroup.clear();
    }

——

[
{
    "group": "Tins",
    "subgroup": "G13AA"
},
{
    "group": "Tins",
    "subgroup": "G13AD"
},
{
    "group": "Cans",
    "subgroup": "G13DA"
},
{
    "group": "Cans",
    "subgroup": "G13DB"
},
{
    "group": "Cans",
    "subgroup": "G13DD"
}
]

预期输出:

[
{
    "group": "Tins",
    "subgroup": [“G13AA”, "G13AD”]
},
{
    "group": "Cans",
    "subgroup": [“G13DA”, "G13DB”, "G13DD”]
} 
]

任何帮助表示赞赏。

您的数据看起来像 JSON。 此示例将使用适当的 Java 对象设置数据:

public class Grouping {

    public class Person {
        String group;
        String subgroup;

        Person(String group, String subgroup){
            this.group = group;
            this.subgroup=subgroup;
        }
    }

    @Test
    public void test() {
        List<Person> list = new ArrayList<>();

        list.add(new Person("Tins", "G13AA"));
        list.add(new Person("Tins", "G13AD"));
        list.add(new Person("Cans", "G13DA"));
        list.add(new Person("Cans", "G13DB"));
        list.add(new Person("Cans", "G13DD"));

        Map<String, List<String>> result = list.stream()
              .collect(Collectors.groupingBy(p->p.group, Collectors.mapping(p->p.subgroup, Collectors.toList())));

        System.out.println(result);
    }

}

将导致:

{Cans=[G13DA, G13DB, G13DD], Tins=[G13AA, G13AD]}

转换 ArrayList 列表的最佳方法是什么<object>到自定义 object java11 Spring 引导 2.1<div id="text_translate"><p> 我有 ArrayList 对象列表,其中对象可以是文本、BigDecimal、Long</p><pre> List&lt;Object&gt; data = { {"date","prize1","cardsNumers","cardObtained","totalCards","anotherPrize"}, {"2020-05-01",435345.67,43,56,67,345345345}, {"2020-03-01",45656.2,34,67,23,456456}, {"2020-02-01",56565,34,56,67,878987} }</pre><p> arrayList 中的第 1、2、3 等对象是第 0 个 arraylist 中提到的每个字段的值。 在如下表中,</p><p> <a href="https://i.stack.imgur.com/Tmdw2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Tmdw2.png" alt="在此处输入图像描述"></a></p><p> 我想从上面获取每个文件的总和并分配给下面自定义 Object 的同一字段,</p><pre> public class SumObject { private Date date; private BigDecimal sumPrize1; private BigDecimal sumCardsNumers; private long sumCardObtained; private long sumTotalCards; private long sumAnotherPrize; }</pre><p> 我通过遍历 List 中的 arrayList 来实现这一点,并通过 get(index) 方法获取值。 但我想知道是否有任何其他好的方法可以做到这一点。</p><p> 如果有人有任何建议,请发布答案或给我一个我可以阅读的文件的方向。</p><p> 提前致谢。</p></div></object>

[英]what would be best way to convert List of ArrayList<Object> to a custom object java11 Spring boot 2.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 转换列表<map<string, string> &gt; 到 Object 中 Java Spring 启动 ZF0B4A299C45171493AE3215D69D </map<string,> 将对象列表转换为 java 中的 JSON 数组 - Spring 启动 Z8A5DA52ED126421D8AAZA 测试 Java Spring Boot: Swagger GET请求中的列表 JSP 不会在 Spring Boot 2 中呈现 java 列表 如何按 Java Spring Boot 中的字段对列表进行排序? 如何获得 java spring 引导中未列出的结果 循环列表数据在 Java Spring Boot with Primefaces 转换 ArrayList 列表的最佳方法是什么<object>到自定义 object java11 Spring 引导 2.1<div id="text_translate"><p> 我有 ArrayList 对象列表,其中对象可以是文本、BigDecimal、Long</p><pre> List&lt;Object&gt; data = { {"date","prize1","cardsNumers","cardObtained","totalCards","anotherPrize"}, {"2020-05-01",435345.67,43,56,67,345345345}, {"2020-03-01",45656.2,34,67,23,456456}, {"2020-02-01",56565,34,56,67,878987} }</pre><p> arrayList 中的第 1、2、3 等对象是第 0 个 arraylist 中提到的每个字段的值。 在如下表中,</p><p> <a href="https://i.stack.imgur.com/Tmdw2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Tmdw2.png" alt="在此处输入图像描述"></a></p><p> 我想从上面获取每个文件的总和并分配给下面自定义 Object 的同一字段,</p><pre> public class SumObject { private Date date; private BigDecimal sumPrize1; private BigDecimal sumCardsNumers; private long sumCardObtained; private long sumTotalCards; private long sumAnotherPrize; }</pre><p> 我通过遍历 List 中的 arrayList 来实现这一点,并通过 get(index) 方法获取值。 但我想知道是否有任何其他好的方法可以做到这一点。</p><p> 如果有人有任何建议,请发布答案或给我一个我可以阅读的文件的方向。</p><p> 提前致谢。</p></div></object> 将双精度列表转换为分组字符串 将线对列表转换为分组对列表
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM