junit
junit
4.12
test
org.hamcrest
hamcrest-core
org.hamcrest
hamcrest-library
1.3
test
com.google.guava
guava
25.1-jre
filter by key
public class FilterMapByKeyTest {
private Map<Integer, String> WEEK = new HashMap<>();
@Before
public void setUp () {
WEEK.put(1, “Monday”);
WEEK.put(2, “Tuesday”);
WEEK.put(3, “Wednesday”);
WEEK.put(4, “Thursday”);
WEEK.put(5, “Friday”);
WEEK.put(6, “Saturday”);
WEEK.put(7, “Sunday”);
}
/**
- Java 8之前的版本
*/
@Test
public void filterMapByKey () {
Map<Integer, String> map = new HashMap<>();
for (Map.Entry<Integer, String> entry : WEEK.entrySet()) {
if (entry.getKey() <= 3) {
map.put(entry.getKey(), entry.getValue());
}
}
assertThat(map.keySet(), contains(1, 2, 3));
}
/**
- Java 8 Lambda
*/
@Test
public void filterMapByKeyJava8Lambda () {
Map<Integer, String> map = WEEK.entrySet().stream().filter(r -> r.getKey() <= 3)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
assertThat(map.keySet(), contains(1, 2, 3));
}
/**
- Google Guava
*/
@Test
public void filterMapByKeyGuava () {
Map<Integer, String> map = Maps.filterKeys(WEEK, r -> r <= 3);
assertThat(map.keySet(), contains(1, 2, 3));
}
}
filter by value
public class FilterMapByValueTest {
private Map<Integer, String> WEEK = new HashMap<>();
@Before
public void setUp () {
WEEK.put(1, “Monday”);
WEEK.put(2, “Tuesday”);
WEEK.put(3, “Wednesday”);
WEEK.put(4, “Thursday”);
WEEK.put(5, “Friday”);
WEEK.put(6, “Saturday”);
WEEK.put(7, “Sunday”);
}
最后
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
- Java基础部分
- 算法与编程

- 数据库部分
- 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
[外链图片转存中…(img-DC4Q4BI8-1716446123361)]
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。