Java. Крутые фишки коллекций

 Рассмотрим крутые фишки коллекций в Java:


clear


subList


replaceAll


Наш класс User:

public class User {
private String userName;
private int userAge;

public User(String userName, int userAge) {
this.userName = userName;
this.userAge = userAge;
}

public static List<User> getUsers() {
List<User> users = new ArrayList<>();
users.add(new User("Ivan", 34));
users.add(new User("Alex", 35));
users.add(new User("Max", 21));
users.add(new User("Tom", 45));
users.add(new User("Richard", 52));
users.add(new User("Donald", 19));
return users;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public int getUserAge() {
return userAge;
}

public void setUserAge(int userAge) {
this.userAge = userAge;
}

@Override
public String toString() {
return "User{" +
"userName='" + userName + '\'' +
", userAge=" + userAge +
'}';
}


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return userAge == user.userAge &&
Objects.equals(userName, user.userName);
}

@Override
public int hashCode() {

return Objects.hash(userName, userAge);
}
}
Наша коллекция объектов:
[User{userName='Ivan', userAge=34},
 User{userName='Alex', userAge=35}, 
User{userName='Max', userAge=21}, 
User{userName='Tom', userAge=45}, 
User{userName='Richard', userAge=52},
 User{userName='Donald', userAge=19}]

1. clear - просто очищает коллекцию

List<User> users = User.getUsers();
users.clear();
System.out.println(users);
Вывод:
[]

2.subList(int fromIndex, int toIndex) - сделать подсписок

Пример.
 Хотим сделать подсписок из 3 элементов(с индексом 0 по
индекс 2):
users = users.subList(0,3);
System.out.println(users);
Вывод:
[User{userName='Ivan', userAge=34},
 User{userName='Alex', userAge=35}, 
User{userName='Max', userAge=21}]
Пример. 
Хотим сделать список из 1 элемента с индексом 1:
List<User> users = User.getUsers();
users = users.subList(1,2);
System.out.println(users);
Вывод:
[User{userName='Alex', userAge=35}]
Пример. 
Хотим удалить первых 2 элемента
List<User> users = User.getUsers();
users.subList(0, 2).clear();
System.out.println(users);
Вывод:
[User{userName='Max', userAge=21},
 User{userName='Tom', userAge=45}, 
 User{userName='Richard', userAge=52},
 User{userName='Donald', userAge=19}]
Пример. 
Хотим проверить содержит ли первые 2 элемента объект
Alex 35.
List<User> users = User.getUsers();
System.out.println(users);
users.subList(0, 2).contains(new User("Alex", 35)); //true
Пример.
Обойти коллекцию, исключая последний элемент:
List<User> users = User.getUsers();
for (User u: users.subList(0, userCount - 1)) {
System.out.println(u);
}

3. replaceAll - изменить все элементы в коллекции


List<User> users = User.getUsers();
users.replaceAll(u -> {
u.setUserName(u.getUserName().toUpperCase());
u.setUserAge(u.getUserAge() + 1);
return u;
});

System.out.println(users);
Вывод:
[User{userName='IVAN', userAge=35},
 User{userName='ALEX', userAge=36},
 User{userName='MAX', userAge=22},
 User{userName='TOM', userAge=46}, 
User{userName='RICHARD', userAge=53},
 User{userName='DONALD', userAge=20}]


Комментарии

Популярные сообщения из этого блога

Java. Лучшая практика работы с Enum

Java. Разбор класса Collections

Java. Удаление данных из коллекции