当前位置: 首页 > 知识库问答 >
问题:

数据从一个列表到另一个java

谷梁裕
2023-03-14

我在课堂上创建了两个列表。

其中一个称为预算,包含元素section、month和sum,返回以下内容:

[Budzet{sec='AGD/RTV',月='01',和=96},Budzet{sec='AGD/RTV',月='03',和=30},Budzet{sec='食品',月='04',和=23},Budzet{sec='游戏',月='09',和=1084}...]

这是SQL查询

"SELECT SUM(cena) AS suma, dzial, add_data FROM products2021 WHERE wartosc='ujemna' GROUP BY dzial, EXTRACT(YEAR_MONTH FROM add_data)

第二个是元素部分,1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月。

我想根据月份和特定时段,将第一个列表中的金额分配给第二个列表。在没有数值显示0的月份。我受不了。

共有1个答案

居京
2023-03-14
  1. 创建月数(键)和初始值(值)的映射。//蒙瑟姆
  2. 在更新“monthSums”地图值的同时,循环浏览数据集(“budzets”)
  3. 用各自的月份标签(“月标签”)替换“月”地图的键
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

class Budzet {
    String sec;
    String month;
    Integer sum;

    public Budzet(String sec, String month, Integer sum) {
        this.sec = sec;
        this.month = month;
        this.sum = sum;
    }
}

class Scratch {

    public static void main(String[] args) {
        List<Budzet> budzets = Arrays.asList(
                new Budzet("AGD/RTV", "01", 96),
                new Budzet("AGD/RTV", "03", 30),
                new Budzet("Food", "04", 23),
                new Budzet("Game", "09", 1084)
        );

        List<String> monthLabels = Arrays.asList("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec");

        // 1. Create a map of month numbers (keys) and initial sums (values). // 'monthSums'.
        Map<String, Integer> monthSums = IntStream
                .rangeClosed(1, monthLabels.size())
                .boxed()
                .collect(Collectors.toMap(i -> (i < 10 ? "0" + i.toString() : i.toString()), i -> 0));

        // 2. Loop through your dataset ('budzets') while updating the 'monthSums' map values.
        for (Budzet budzet : budzets) {
            monthSums.put(budzet.month, monthSums.get(budzet.month) + budzet.sum);
        }

        // 3. Replace the keys of the 'monthSums' map with their respective month labels (monthLabels).
        monthSums = monthSums
                .entrySet()
                .stream()
                .collect(Collectors.toMap(e -> monthLabels.get(Integer.parseInt(e.getKey()) - 1), Map.Entry::getValue));

        System.out.println(monthSums);
        // {jul=0, oct=0, feb=0, apr=23, jun=0, aug=0, dec=0, nov=0, may=0, jan=96, mar=30, sep=1084}

    }
}
 类似资料:
  • 我在课堂上创建了两个列表。 其中一个称为预算,包含元素section、month和sum,返回以下内容: [Budzet{sec='AGD/RTV',月='01',和=96},Budzet{sec='AGD/RTV',月='03',和=30},Budzet{sec='食品',月='04',和=23},Budzet{sec='游戏',月='09',和=1084}...] 这是SQL查询 第二个是元素

  • 问题内容: 我有2个不同的表,但各列的命名略有不同。我想从一个表中获取信息,然后将其放入另一个表中。仅当表1中的“信息字段”不为null时,才需要将表1中的信息放入表2中。表2在创建任何东西时都有一个唯一的ID,因此插入的任何东西都需要获得下一个可用的ID号。 表格1 表2 问题答案: 这应该工作。您无需担心Table2中的identify字段。

  • 问题内容: 我试图将数据从一个表插入到另一个表,这是我收到的错误消息: 错误:将INERT插入到content2(d1,d2,d3)值(John,Doo,24); 错误:在字段列表中插入未知列’John’错误:INSERT INTO content2(d1,d2,d3)VALUES(Mary,Moe,36); ‘字段列表’中的未知列’Mary’错误:INSERT INTO content2(d1,

  • 问题内容: 我想从一个表中读取所有数据,然后将一些数据插入到另一个表中。我的查询是 但我有一个错误 请帮我。 问题答案: 您可以使用INSERT … SELECT语法。请注意,您可以在SELECT部分​​中直接引用“ 1”。

  • 问题内容: 我有两个数据库,一个叫做,一个叫做。由于我想练习插入,更新内容,因此我想将某些表从复制到。 我要复制的表称为: 我试图做的是(使用SSMS)右键单击表格,但其中没有“复制”! 问题答案: 假设您有两个数据库,例如A和B: 如果目标表不存在,将创建以下脚本(我不建议这样): INTO COPY_TABLE_HERE FROM A.dbo.table_from_A table_A 如果目标

  • 问题内容: 我有2个表,一个包含我需要的最终结果,另一个包含我需要根据设定级别选择的列列表。 例如 : 所以,如果我做以下 然后,基本上我需要使用此select语句中的列名来确定从另一条语句中选择了哪些列。 香港专业教育学院尝试过的方法,我当然知道这是错的,但可以让我对我试图做的事情有所了解。 我试图以一种动态方式构建一个sql查询,该查询可以通过我放在表中的任何列进行更改。 从理论上讲,这应与以