小编Iti*_*pta的帖子

如何限制groupBy java流

这是我课程中的课程模型Course:

public class Course{
    private int courseId;
    private String courseName;
    private Teacher teacher;
}
Run Code Online (Sandbox Code Playgroud)

这是我班级中的老师模型Teacher:

public class Teacher{
    private int teacherId;
    private String name;
}
Run Code Online (Sandbox Code Playgroud)

我想得到一个,Map<String, List<Course>>但如果teacherId重复只是将其添加Course到地图列表中.

我正在使用groupBy

Map<Integer, List<Course>>  result = courses.stream()
        .collect(Collectors.groupingBy(c -> c.getTeacher().getTeacherId(), Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)

它正在按预期给出结果.

但我想在limit这里找到5名教师停止处理并返回结果.

怎么做到呢??

java lambda java-8 java-stream

8
推荐指数
1
解决办法
240
查看次数

通过spring缓存中的方法访问返回的数据

我有一个Person其中有idname

Id当我通过方法搜索返回Person对象时,我想将其作为缓存键,但返回的数据在注释标记name中不可访问,但可以在标记中访问。keyCacheablenameunless

@Cacheable(value = "Cache", key = "#result.name", unless="#result.name == 'Foo'")
public Person getById(String id){}
Run Code Online (Sandbox Code Playgroud)

如果我使用key = "#result.name"它会给我例外:

EL1007E:在 null 上找不到属性或字段“名称”

我缺少什么,如何访问key标记中方法返回的数据?

java caching ehcache redis spring-boot

5
推荐指数
1
解决办法
5004
查看次数

标签 统计

java ×2

caching ×1

ehcache ×1

java-8 ×1

java-stream ×1

lambda ×1

redis ×1

spring-boot ×1