第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Java分組按列表

Java分組按列表

不負(fù)相思意 2021-05-07 14:11:50
class Student {     List<Integer> grades     }我想按年級(jí)對學(xué)生進(jìn)行分組,但是如果每個(gè)學(xué)生只有一個(gè)年級(jí),則groupingBy可以工作。還有其他蘭巴舞的方法嗎?我希望結(jié)果像 Map<Integer, List<Student>>
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

Map<Integer, List<Student>> collect = students.stream()

                                                  .flatMap(student -> student.grades.stream()

                                                                                    .map(grade -> new AbstractMap.SimpleEntry<>(grade,

                                                                                            student)))

                                                  .collect(Collectors.groupingBy(entry -> entry.getKey(),

                                                          Collectors.mapping(Entry::getValue, Collectors.toList())));

因?yàn)槲覜]有使用Java的Pair tuple實(shí)現(xiàn) AbstractMap.SimpleEntry


查看完整回答
反對 回復(fù) 2021-05-26
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

groupingBy如果您有所幫助,它將完成此工作:您可能會(huì)在Javadoc中為groupingBy找到與此版本等效的版本。


final List<Student> students = ...;

// @formatter:off

students.stream()

        .flatMap(student -> student.grades.stream()

                                          .map(grade -> new StudentGrade(student, grade)))

        .collect(groupingBy(StudentGrade::getGrade, mapping(StudentGrade::getStudent, toList())));

// @formatter:on

現(xiàn)在,您得到一個(gè)Map<Integer, List<Student>>。過濾重復(fù)項(xiàng)取決于您。


您將需要這些導(dǎo)入:


import static java.util.stream.Collectors.groupingBy;

import static java.util.stream.Collectors.mapping;

import static java.util.stream.Collectors.toList;

類StudentGrade很簡單:


class StudentGrade {

  private final Student student;

  private final Integer   grade;

  public StudentGrade(Student student, Integer grade) {

    this.student = student;

    this.grade = grade;

  }

  public Student getStudent() {return student;}

  public Integer getGrade()   {return grade;}

}


查看完整回答
反對 回復(fù) 2021-05-26
  • 2 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)