Как я могу получить переменные объекта из вектора? - PullRequest
0 голосов
/ 31 января 2020

Мой код

package crypto;

import java.util.Vector;

public class Wallet {
    public void main() {}

    public String username;
    public String password;
    public int coins;

    Vector<Object> wallets = new Vector<Object>();

    public Wallet(String username, String password) {
        this.username = username;
        this.password = password;
        this.coins = 0;
    }

    public void createWallet(String username, String password) {
        wallets.add(new Wallet(username, password));
    }

    public Object findWallet(String username, String password) {
        Object wallet;

        for (int i = 0; i < wallets.size(); i++) {
            wallet = wallets.get(i);
            if (wallet.username == username && wallet.password == password) {
                return wallet;
            }
        }
        return 0;
    }

    public void addCoins(String username, String password, int coins) {
        Object wallet = findWallet(username, password);
        wallet.coins += coins;
    }
}

Любая помощь будет оценена. Это тестовая программа для криптовалюты (просто личный проект)

К вашему сведению, это просто текст для заполнения, потому что, очевидно, вы должны это сделать.

Ответы [ 2 ]

0 голосов
/ 31 января 2020

Ваш вопрос не очень понятен, но позвольте мне угадать, что вам нужно.

Вы можете использовать дженерики:

Vector<Wallet> wallets = new Vector<Wallet>();

В любом случае, почему вы не решили использовать простой ArrayList?

List<Wallet> wallets = new ArrayList<>();

Теперь у вас есть доступ к вашим методам Wallet при поиске в векторе.

И везде измените тип объекта на Wallet.

Я бы порекомендовал вам: переписать поисковую логику c примерно так:

public Wallet findWallet(String userName, String password) {
    return wallets.stream()
        .filter(e -> e.getUserName().equals(userName))
        .filter(e -> e.getPassword().equals(password))
        .findAny()
        .orElse(null);
}

Вы можете гуглить, что такое геттеры и сеттеры.

Я также хотел бы отметить, что вы можете использовать отдельные классы для сам Ваш кошелек и сервис, который имеет тенденцию выполнять операции над ним.

Я полагаю, вы можете найти более полезную информацию здесь

0 голосов
/ 31 января 2020

Я думаю, вам нужен метод get(int index). Возвращает элемент в указанной позиции в вашем векторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...