Как вывести только определенное значение в созданном объекте другого в ArrayList java

Рейтинг: -3Ответов: 2Опубликовано: 22.05.2023

Дано:

ArrayList<String> client1 = new ArrayList<>(); 
client1.add(String.valueOf(new Client("Анна", "Веревочкина", 22)));

Метод toString переопределен в классе Client и выводит всю инфу о Анне. Необходимо вывести только имя. Подскажите пожалуйста как я могу это сделать?

P.s. Действия происходят в разных классах Т.е. список создан в одном классе, Client - другой класс.

Ответы

▲ 1

Итого: Необходимо вызывать именно Client

 ArrayList<Client> clients1 = new ArrayList<>();
    clients1.add(new Client("Анна", "Веревочкина", 22));

И затем все просто:

System.out.println(clients1.get(0).getName());

Спасибо за помощь в комментариях

▲ 0

Что бы сохранить в список строк только имя, воспользуйтесь геттером, вот пример:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;

public class Main {

    public static void main(String[] args) {
        List<String> client1 = new ArrayList<>();
        client1.add(new Client("Анна", "Верёвочкина", 22).getFirstName());
    
        // Хотя возможно лучше было бы в список сохранять не имена,
        // а объекты Client
        List<Client> clients = new ArrayList<>();
        clients.add(new Client("Анна", "Верёвочкина", 22));
        clients.add(new Client("Катя", "Брусникина", 25));
    
        // После чего, что-то делать со списком, в данном случае,
        // выводим в STDOUT имена
        clients.stream().forEach(c -> System.out.println(c.getFirstName()));
    }
}

class Client {
    private String firstName;
    private String lastName;
    private int age;

    // конструктор
    public Client(String firstName, String lastName, int age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    // Переопределяем toString()
    @Override
    public String toString() {
        return "Client [firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + "]";
    }
}

И ещё! Метод toString() ничего не должен выводить, он должен возвращать строковое представление объекта.