fork(1) download
  1. import java.util.*;
  2. class Ideone {
  3. static List<Alpha> list;
  4. public static void main (String[] args) {
  5. String name = "qwerty";
  6. list = new ArrayList<>(Arrays.asList(new Alpha("foo"), new Alpha(name),
  7. new Alpha("bar"), new Alpha("lol")));
  8.  
  9. Alpha temp = removeAndGet(name);
  10.  
  11. System.out.println(temp); //qwerty
  12. System.out.println(list); //[foo, bar, lol]
  13. }
  14. static Alpha removeAndGet(String name) {
  15. //получаем первый подходящий объект
  16. //или null, если таких нет
  17. Alpha temp = list.stream()
  18. .filter(a -> name.equals(a.getName()))
  19. .findFirst()
  20. .orElse(null);
  21. //удаляем *ВСЕ* объекты с таким именем
  22. list.removeIf(a -> name.equals(a.getName()));
  23. return temp;
  24. }
  25. static class Alpha {
  26. String name;
  27. Alpha(String name) {
  28. this.name = name;
  29. }
  30. String getName() {
  31. return name;
  32. }
  33. @Override
  34. public String toString() {
  35. return name;
  36. }
  37. }
  38. }
Success #stdin #stdout 0.14s 2184192KB
stdin
Standard input is empty
stdout
qwerty
[foo, bar, lol]