按日期分组对象以放入图形JavaFX

时间:2019-07-14 10:32:36

标签: java javafx

我正在做一个小项目,该项目从facebook收集有关JSON对话的数据,并创建一个图形,其中X轴上的日期和Y上的消息号。 现在我不知道如何按日期对消息文本进行分组,该消息也存储在对象中。

我想使用

stream().collect().GroupingBy(//..

将数据放入Map<LocalDate,List<Message>>中,但理想情况下是Map<LocalDate,Integer>将日期映射到该日期的消息数。 或者,如果有更好的解决方案,以便以后将其用于图形解释会更容易,我欢迎您提出建议。

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Message {
    private String sender_name;
    private Timestamp timestamp_ms;
    private String content;

}
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Conversation {
    private ArrayList<Message> messages;
}
 public static void readData(String path) throws IOException {

        byte[] jsonData = Files.readAllBytes(Paths.get(path));
        ObjectMapper objectMapper = new ObjectMapper();
        Conversation conversation = objectMapper.readValue(jsonData, Conversation.class);
        groupByDate(conversation);

    }

    public static void groupByDate(Conversation conv){
        HashMap<LocalDate,Message> countMap =  conv.getMessages().stream().collect(groupingBy(conv.getMessages().::/*?*/));

    }

1 个答案:

答案 0 :(得分:0)

在GUI中没有更多关于期望结果的详细信息,我无法提出更好的选择,但是假设.your-class-name{ float: right !important } 也可以,则可以使用Map<LocalDate, Long>方法的重载版本:

groupingBy