/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Arrays;
import java.util.stream.Collectors;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
LinkedList<Pet> pets = new LinkedList<>();
pets.add(new CAT());
pets.get(0).setName("Meow0");
pets.add(new DOG());
pets.get(1).setName("Woof0");
pets.add(new CAT());
pets.get(2).setName("Meow1");
pets.add(new DOG());
pets.get(3).setName("Woof1");
pets.add(new CAT());
pets.get(4).setName("Meow2");
System.
out.
println(Ideone.
dequeueDog(pets
).
getName()); }
public static class Pet {
return name;
}
public Pet setName
(String name
) { this.name = name;
return this;
}
}
public static class CAT extends Pet{}
public static class DOG extends Pet{}
private static Pet dequeueDog(LinkedList<Pet> linkedList) {
List<Pet> dogList = linkedList.stream().filter(u -> u.getClass() == DOG.class).collect(Collectors.toList());
int locationDog = linkedList.lastIndexOf(dogList.get(dogList.size()-1));
return linkedList.remove(locationDog);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5Db2xsZWN0b3JzOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlMaW5rZWRMaXN0PFBldD4gcGV0cyA9IG5ldyBMaW5rZWRMaXN0PD4oKTsKCQlwZXRzLmFkZChuZXcgQ0FUKCkpOwoJCXBldHMuZ2V0KDApLnNldE5hbWUoIk1lb3cwIik7CgkJcGV0cy5hZGQobmV3IERPRygpKTsKCQlwZXRzLmdldCgxKS5zZXROYW1lKCJXb29mMCIpOwoJCXBldHMuYWRkKG5ldyBDQVQoKSk7CgkJcGV0cy5nZXQoMikuc2V0TmFtZSgiTWVvdzEiKTsKCQlwZXRzLmFkZChuZXcgRE9HKCkpOwoJCXBldHMuZ2V0KDMpLnNldE5hbWUoIldvb2YxIik7CgkJcGV0cy5hZGQobmV3IENBVCgpKTsKCQlwZXRzLmdldCg0KS5zZXROYW1lKCJNZW93MiIpOwoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbihJZGVvbmUuZGVxdWV1ZURvZyhwZXRzKS5nZXROYW1lKCkpOwoJfQoJCglwdWJsaWMgc3RhdGljIGNsYXNzIFBldCB7CgkgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKCQoJICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKCSAgICAgICAgcmV0dXJuIG5hbWU7CgkgICAgfQoJCgkgICAgcHVibGljIFBldCBzZXROYW1lKFN0cmluZyBuYW1lKSB7CgkgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CgkgICAgICAgIHJldHVybiB0aGlzOwoJICAgIH0KCX0KCQoJcHVibGljIHN0YXRpYyBjbGFzcyBDQVQgZXh0ZW5kcyBQZXR7fQoJCglwdWJsaWMgc3RhdGljIGNsYXNzIERPRyBleHRlbmRzIFBldHt9CgkKCXByaXZhdGUgc3RhdGljIFBldCBkZXF1ZXVlRG9nKExpbmtlZExpc3Q8UGV0PiBsaW5rZWRMaXN0KSB7CgkJCgkJTGlzdDxQZXQ+IGRvZ0xpc3QgPSBsaW5rZWRMaXN0LnN0cmVhbSgpLmZpbHRlcih1IC0+IHUuZ2V0Q2xhc3MoKSA9PSBET0cuY2xhc3MpLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7CiAgICAgICAgaW50IGxvY2F0aW9uRG9nID0gbGlua2VkTGlzdC5sYXN0SW5kZXhPZihkb2dMaXN0LmdldChkb2dMaXN0LnNpemUoKS0xKSk7CiAgICAgICAgcmV0dXJuIGxpbmtlZExpc3QucmVtb3ZlKGxvY2F0aW9uRG9nKTsKICAgIH0KfQo=