Разделить массив строк на его оригинальные элементы строк - PullRequest
0 голосов
/ 15 апреля 2020

Итак, у меня есть Arraylist:

ArrayList<String> al = new ArrayList<String>();
for (int i = 0; i < arr1.length(); i++) {
JSONObject objectt = arr1.getJSONObject(i);
JSONObject triple = objectt.getJSONObject("triple");
String subject=triple.getString("s");
String predicate=triple.getString("p");
String value=triple.getString("o");
al.add(subject);
al.add(predicate);
al.add(value);
}

Я хочу знать, есть ли способ разбить arraylist "al" на исходные строки (subject, предикат, значение) вне для l oop?

1 Ответ

1 голос
/ 15 апреля 2020

Не храните отдельные строки отдельно, храните их в объекте, который имеет поля для субъекта, предиката и значения, например:

public class Triple {
    private String subject;
    private String predicate;
    private String value;

    public Triple(String subject, String predicate, String value) {
        this.subject = subject;
        this.predicate = predicate;
        this.value = value;
    }

    /* getters, toString, equals and hashCode if necessary... */
}

// . . .
    List<Triple> al = new ArrayList<>();
    for (int i = 0; i < arr1.length(); i++) {
        JSONObject triple = arr1.getJSONObject(i).getJSONObject("triple");
        String subject = triple.getString("s");
        String predicate = triple.getString("p");
        String value = triple.getString("o");
        al.add(new Triple(subject, predicate, value));
    }

Затем, если вы хотите использовать значения, позвоните получателям:

// . . .
    for (Triple t : al) {
        String subject = t.getSubject();
        String predicate = t.getPredicate();
        String value = t.getValue();
        // do something with them
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...