Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public qweqwe() {
- this.map = new HashMap<Person, List<Pet>>();
- }
- Person [name=Yurii]
- Pet [nickname=Margo, vyd=Dog]
- Pet [nickname=Chita, vyd=Dog]
- Person [name=qweqwe]
- Pet [nickname=Chita, vyd=Dog]
- void remove(Map<Person, List<Pet>> map, String name, String nickname) {
- Maps.filterKeys(map, person -> person.getName().equals(name)).forEach((person, pets) -> {
- pets.removeIf(pet -> pet.getName().equals(nickname));
- });
- }
- void remove(Map<Person, List<Pet>> map, String name, String nickname) {
- map.entrySet().stream().filter(person -> person.getName().equals(name)).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue())).forEach((person, pets) -> {
- pets.removeIf(pet -> pet.getName().equals(nickname));
- });
- }
- public class Person {
- private String name;
- public Person(String name) {
- this.name = name;
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof Person)) return false;
- Person person = (Person) o;
- return name != null ? name.equals(person.name) : person.name == null;
- }
- @Override
- public int hashCode() {
- return name != null ? name.hashCode() : 0;
- }
- }
- public class Pet {
- private String nickname;
- private String vyd;
- Pet(String nickname, String vyd) {
- this.nickname = nickname;
- this.vyd = vyd;
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof Pet)) return false;
- Pet pet = (Pet) o;
- if (nickname != null ? !nickname.equals(pet.nickname) : pet.nickname != null) return false;
- return vyd != null ? vyd.equals(pet.vyd) : pet.vyd == null;
- }
- }
- ListMultimap<Person, Pet> map = ArrayListMultimap.create();
- Person personFirst = new Person("name1");
- map.put(personFirst, new Pet("nick1", "vid1"));
- map.put(personFirst, new Pet("nick2", "vid2"));
- map.put(personFirst, new Pet("nick3", "vid3"));
- Person personSecond = new Person("name2");
- map.put(personSecond, new Pet("nick1", "vid1"));
- map.put(personSecond, new Pet("nick2", "vid2"));
- map.put(personSecond, new Pet("nick3", "vid3"));
- map.remove(personSecond, new Pet("nick3", "vid3"));
- Map<Person, Collection<Pet>> mapResult = map.asMap();
- public boolean put(@Nullable K key, @Nullable V value) {
- return this.get(key).add(value);
- }
- public boolean remove(@Nullable Object key, @Nullable Object value) {
- Collection collection = (Collection)this.asMap().get(key);
- return collection != null && collection.remove(value);
- }
Add Comment
Please, Sign In to add comment