Нахождение длины всех значений в ArrayList - PullRequest
0 голосов
/ 24 октября 2018

Для программы, которую я пытаюсь использовать для повторения вложенного цикла for в следующем формате:

for(int i = 0;i < ArrayList.size();i++){
    for(int x = 0;x <ArrayList.get(i).length();x++){
        //stuff
    }
}

По сути, я хочу повторить цикл for для каждого символа в каждом индексе ArrayList, ноэто решение не похоже на работу.Любая помощь приветствуется!

Редактировать: в моем случае arraylist будет содержать только строки

Ответы [ 4 ]

0 голосов
/ 24 октября 2018

вся ваша логика верна, но в синтаксисе есть ошибка, вы используете имя класса вместо ссылки на объект, т. Е. Измените ArrayList на ссылочную переменную ArrayList в своем коде.

(ArrayList.size ()to list.size ())

изменить

for(int i = 0;i < ArrayList.size();i++){
    for(int x = 0;x <ArrayList.get(i).length();x++){
        //stuff
    }
}

на

ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("mango");
list.add("orange");
for(int i = 0;i < list.size();i++){
        for(int x = 0;x <list.get(i).length();x++){
            //stuff
        }
}
0 голосов
/ 24 октября 2018

Вы можете попробовать это так,

List<String> arrayList = new ArrayList();

arrayList.add("strings1");
arrayList.add("strings2");

for(int i = 0;i < arrayList.size();i++){
    for(int x = 0;x <arrayList.get(i).length();x++){
          //stuff
    }
}
0 голосов
/ 24 октября 2018

Попробуйте использовать цикл For Each Loop, чтобы:

int sumLength = 0;
ArrayList<String> r = new ArrayList<String>();
for(String s : r)
{
 sumLength += s.length();
}
return sumLength;

Это дало бы вам сумму всех длин в вашем ArrayList

0 голосов
/ 24 октября 2018

Обновленный код:

Вы можете использовать потоки java8 для решения этой проблемы, и не говоря уже о том, что это нулевая безопасность.Вот пример.

import java.util.ArrayList;
import java.util.List;

public class NestedList {

    public static void main(String[] args) {

        List<String> list1 = new ArrayList<>();
        list1.add("JOHN");
        list1.add("JACK");
        list1.add("CYTHIA");
        list1.add("DANNY");

        list1.stream().forEach( str -> {
            char x;
            for (int i = 0; i < str.toCharArray().length; i++) {
                x = str.charAt(i);
                //do your struff
                System.out.println(x);
            }
        });

    }
}

Потоковый метод Java8 будет обрабатывать список, где вы можете использовать toCharArray, который преобразует строку в массивы символов для обработки каждого символа.

...