Как я использую ArrayList <HashMap>из трех параметров типа String? - PullRequest
0 голосов
/ 20 февраля 2020

Как я могу использовать ArrayList> три члена String? Я хочу иметь

String email = do_id.getString("email");
String phone = do_id.getString("phone");
String age = do_id.getString("age");    
map.put("KEY_EMAIL",email);
map.put("KEY_PHONE",phone);
map.put("KEY_age",age); 
getDatalist.add(map);

1 Ответ

2 голосов
/ 20 февраля 2020

Вы не можете.

Это объявление для Java HashMap

public class HashMap<K,V> extends AbstractMap<K,V>

Как вы можете видеть имеет два параметра типа K и V, вы пытаетесь передать ему три, которые не будут работать.

Вместо этого вам следует создать класс данных (POJO) для хранения ваших строк или использовать тройку (кортеж):

public final class Triple<L, M, R> {

    private final L left;
    private final M middle;
    private final R right;

    public Triple(L left, M middle, R right) {
        this.left= left;
        this.middle= middle;
        this.right= right;
    }

    public L getLeft() {
        return this.left;
    }

    public M getMiddle() {
        return this.middle;
    }

    public R getRight() {
        return this.right;
    }

    // Android Studio should be able to generate hashCode, equals and toString for you
}


final List<Triple<String, String, String>> list = new ArrayList();
list.add(Triple(email, phone, age));

Или вы можете использовать apache commons ' Triple class

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