Как сравнить значение в ArrayList <String>в Java - PullRequest
1 голос
/ 10 августа 2011

У меня есть два ArrayList:

ArrayList<String> input = new ArrayList<String>();
ArrayList<String> output = new ArrayList<String>();

input contains these data:
input= {a b c d, a g f r, d e a b, k c s x, f g h s}
output contains:
output = {a b c f, g f x r, d e f g}

Я хотел бы сравнить значение этого списка, например: input (0) содержит a, b, c и d, в то время как output (0) содержит a, b, c и f.Если мы сравниваем, мы можем получить a, b и c - одинаковые значения, то есть оба массива имеют 3 одинаковых значения.

Iteration<String> itr = input.iterator();

while(itr.hasNext()) {

    //should i do this to get each value in each row?
    for(String s : input) {
        StringTokenizer b = new StringTokenizer(s," ");
        String[] temp_input = new String[n];
        int i = 0;

        while(b.hasMoreTokens()) {
            temp_input[i] = b.nextToken();
        }
    }
}

поэтому результатом должно быть количество одинаковых значений между входом и выходом. заранее спасибо ..

Ответы [ 2 ]

0 голосов
/ 23 декабря 2013

Вот идея:

     for(String string1: arrayOfStrings1)
     {
         for(String string2: arrayOfStrings2)
         {
             if(string1.equals(string2))
             {
                  //increase counter or do whatever you would like here...
             }
         }
     }
0 голосов
/ 10 августа 2011

Могу ли я предположить, что массивы отсортированы, и вы заинтересованы только в сравнении input[i] с output[i]?

Если так, есть простое решение:

int counter = 0;
int length = Math.min(input.size(), output.size());
String[] data = null;
for (int i = 0; i < length; ++i ) {
    data = input.get(i).split(" "); // division by space
    for(String value : data) {
        if ( output.get(0).contains(value) ) ++counter;
    }    
}

Я долженупомяните, что это решение не в лучшем исполнении, но в соответствии с вашей плохой спецификацией проблемы оно может подойти.

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