Когда я сегодня писал фильтрацию корня, я был немного ошеломлен. Сначала я подумал об использовании нативной карты Java, чтобы забрать ее, но я подумал, что она слишком низкая. Позже я подумал об этом и мог использовать Java 8 Lambda. После написания, я обнаружил, что Google Guava имеет готовый метод. Я перечислил это один за другим для справки.
Прежде всего, если вы скопируете мой код, не забудьте процитировать эти зависимости
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> <exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </dependency> <dependency> <groupId> org.hamcrest </GroupId> <ArtifactId> hamcrest-library </artifactid> <serse> 1.3 </version> <scope> test </scope> </dependency> <dehydency> <groupid> com.google.guava </GroupD> <ratifactId> guava </artifactId> <serse> 25.gre </GroupD> <ratifactid> guava </artifactId> <serse> jreava </GroupD> <strifactid> </artifactid>
Фильтр по ключам
открытый класс filtermapbykeytest {private map <integer, string> week = new hashmap <> (); @Before public void setup () {week.put (1, "понедельник"); Week.put (2, «вторник»); Week.put (3, «среда»); Week.put (4, «четверг»); Week.put (5, «пятница»); Week.put (6, «суббота»); Week.put (7, «воскресенье»); } / *** Версии перед Java 8* / @test public void filtermapbykey () {map <integer, string> map = new hashmap <> (); for (map.Entry <integer, string> entry: weard.entryset ()) {if (entry.getKey () <= 3) {map.put (entry.getKey (), intry.getValue ()); }} assertthat (map.keyset (), содержит (1, 2, 3)); } / ** * java 8 lambda * / @test public void filtermapbykeyjava8lambda () {map <Integer, String> map = неделя assertthat (map.keyset (), содержит (1, 2, 3)); } / ** * Google guava * / @test public void filtermapbykeyguava () {map <integer, string> map = maps.filterkeys (неделя, r -> r <= 3); assertthat (map.keyset (), содержит (1, 2, 3)); }}Фильтр по значению
открытый класс filtermapbyvaluetest {private map <integer, string> week = new hashmap <> (); @Before public void setup () {week.put (1, "понедельник"); Week.put (2, «вторник»); Week.put (3, «среда»); Week.put (4, «четверг»); Week.put (5, «пятница»); Week.put (6, «суббота»); Week.put (7, «воскресенье»); } / *** Версии перед Java 8* / @test public void filtermapbyvalue () {map <integer, string> map = new hashmap <> (); for (map.Entry <integer, string> intpirt: weed.EntrySet ()) {if (entry.getValue (). startSwith ("s")) {map.put (entry.getKey (), intry.getValue ()); }} assertthat (map.values (), содержит ("суббота", "воскресенье")); } / ** * java 8 lambda * / @test public void filtermapbyvaluejava8lambda () {map <integer, string> map = недель. Map.Entry :: getValue)); assertthat (map.values (), содержит («суббота», «воскресенье»)); } / ** * Google guava * / @test public void filtermapbyvalueguava () {map <integer, string> map = maps.filtervalues (неделя, r -> r.startswith ("s")); assertthat (map.values (), содержит («суббота», «воскресенье»)); }}Суммировать
Выше приведено пример кода карты Java, отфильтрованного через ключ или значение, введенное редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!