Android цикл через вложенные хеш-карты - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь создать вложенные хеш-карты для сохранения пользовательских заданий, подобных этому:

HashMap<String, String> firstJob = new HashMap<String, String>();
    firstJob.put("Title","instructor");
    firstJob.put("From","2008");
    firstJob.put("To","2010");
    firstJob.put("At","Company1");

    HashMap<String, String> secondJob = new HashMap<String, String>();
    secondJob.put("Title","PHP developer");
    secondJob.put("From","2010");
    secondJob.put("To","2013");
    secondJob.put("At","Company2");

    HashMap<String, String> thirdJob = new HashMap<String, String>();
    thirdJob.put("Title","PHP developer");
    thirdJob.put("From","2013");
    thirdJob.put("To","2018");
    thirdJob.put("At","Company3");

    HashMap<String, HashMap> myHashMap = new HashMap<String, HashMap>();
    myHashMap.put("first", firstJob);
    myHashMap.put("second", secondJob);
    myHashMap.put("third", thirdJob);

А теперь я хочу зациклить его, чтобы отобразить в строках сначала задание, затем второе задание и т. Д. *

    String txt = "";

    Iterator it = myHashMap.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        TextView d = (TextView) findViewById(R.id.data);
        txt += pair.getKey() + " = " + pair.getValue() + "\n";
        d.setText(txt);
    }

Pair.getValue () имеет полное значение хэш-карты {From = 2008, At = Company1, To = 2010, Title = Instructor}, и теперь я хочу повторить его, чтобы отобразить его в виде списка

Position:instructor
Started:2008
Ended:2010
At:Company1

Затем следующее задание и т. Д. Как я могу пройти по этим внутренним хэш-картам?

Если это не лучший способ сделать это, то каков наилучший способ?

Заранее спасибо.

1 Ответ

0 голосов
/ 04 января 2019

Создать класс или модель, как это ... Я также советую вам изменить имя переменной. Не используйте title, from, to, at, так как это может привести к путанице в вашем коде. Будь более креативным.

public class ModelExample {

        String title;
        String from;
        String to;
        String at;

        public ModelExample(String title, String from, String to, String at) {
            this.title = title;
            this.from = from;
            this.to = to;
            this.at = at;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getFrom() {
            return from;
        }
        public void setFrom(String from) {
            this.from = from;
        }
        public String getTo() {
            return to;
        }
        public void setTo(String to) {
            this.to = to;
        }
        public String getAt() {
            return at;
        }
        public void setAt(String at) {
            this.at = at;
        }
}

Создайте список и вставьте их в.

List<ModelExample> model = new ArrayList<ModelExample>();
model.add(new ModelExample("instructor", "2008", "2010", "Company1"));
model.add(new ModelExample("PHP Dev", "2010", "2013", "Company 3"));
model.add(new ModelExample("PHP Dev 2", "2013", "2018", "Company3"));

Затем вы можете просмотреть этот список.

for (int i = 0; i < model.size(); i++) {
    System.out.println("Title: " + model.get(i).getTitle());
    System.out.println("From: " + model.get(i).getFrom());
    System.out.println("At: " + model.get(i).getAt());
    System.out.println("To: " + model.get(i).getTo());
    System.out.println("\n------------------\n");
}

Это напечатает следующее ..

Title: instructor
From: 2008
At: Company1
To: 2010

------------------

Title: PHP Dev
From: 2010
At: Company 3
To: 2013

------------------

Title: PHP Dev 2
From: 2013
At: Company3
To: 2018

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