Как вы вытягиваете целое число из определенного места в двумерном массиве? - PullRequest
0 голосов
/ 30 января 2012

Если у меня есть ArrayList из ArrayList s, скажите «большой список».

[[1,2,3],[4,3,2],[5,1,2],[6,4,7],[7,1,2]]

Как я могу подсчитать все 1 в первом ряду (таким образом, 1 4 5 6 7, всего 1) и то же самое для второго и т. Д.?

Iпотерян на этом, поэтому любая помощь или руководство будет оценено.

Ответы [ 3 ]

1 голос
/ 30 января 2012

Вы пробовали что-то вроде:

public ArrayList<ArrayList<Integer>> getElements(ArrayList<ArrayList<Integer>> bigList, int columnIndex){
    ArrayList<Integer> resultList = new ArrayList<Integer>();
    for ( ArrayList<Integer> al : bigList ){
        resultList.add(al.get(columnIndex));
    }
    return resultList;
}

ПРИМЕЧАНИЕ: Я говорю columnIndex , потому что я вижу ваш bigList в виде матрицы.

1 голос
/ 30 января 2012
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
//...add your integer to the list

ArrayList<Integer> newList = new ArrayList<Integer>();
for(int i = 0; i < list.size(); i++)
{
    if(i == 2 || i == 3) //for instance if you want to exclude certain sublists in your list 
        continue;

    ArrayList<Integer> ints = list.get(i);
    if(ints.size() > 0)
        newList.add(ints.get(0 /* 0 or whatever part of inner list you want */));
}
0 голосов
/ 30 января 2012

Как я могу подсчитать все 1 в первом ряду (т. Е. 1 4 5 6 7, всего 1) и то же самое для второго и т. Д.

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

int intWeAreLookingFor = 1;
int rowNumber=0;
for(ArrayList list: biglist){

    int numOfHits=0;
    rowNumber++;
    for(Integer i: list){

        if(i.equals(intWeAreLookingFor)){
            numOfHits++;
        }
    }
    System.out.printLine("The number '"+intWeAreLookingFor
        +"' was counted "+numOfHits+" times in row "+rowNumber+".");
}

Для вашего массива выборок [[1,2,3],[4,3,2],[5,1,2],[6,4,7],[7,1,2]] это вывело бы:

The number '1' was counted 1 times in row 1.
The number '1' was counted 0 times in row 2.
The number '1' was counted 1 times in row 3.
The number '1' was counted 0 times in row 4.
The number '1' was counted 1 times in row 5.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...