confronto tra elementi di due arrayList in java

ho avuto due Stringa di tipo arraylist ..una lista contenente “cartella1”, “cartella2”, “book3” e “book4”. E un altro arrayList contenente “cartella1”, “cartella2”, “book3”. Così, la dimensione del primo elenco è 4 e la seconda è di 3. E ho creato un altro arrayList uguale alla dimensione del primo elenco

List<Integer> comparingList = new ArrayList<Integer>();
                    //adding default values as one
                    for(int a=0;a<firstList.size();a++){
                        comparingList.add(0);

                    }

E se il contenuto è uguale tra due liste, sto impostando a 1 invece di 0.

in modo che il new arrayList(comparingList) dovrebbe avere 1,1,1,0 elementi

for(int counter = 0;counter < firstList.size();counter++){
for(int counter1 = 0;counter1 < secondList.size();counter1++){
if(firstList.get(counter).equals(secondList.get(counter1))){
    comparingList.set(counter,1);
    break;
}
}

}

ma quando lo faccio, non voglio essere in grado di impostare 1 come non riesco a entrare in condizione se, qualcuno mi può aiutare per favore

Esattamente ciò che sta accadendo che si pensa è sbagliato?
Provare a stampare i valori all’interno di ciclo per vedere quali sono i valori che si confrontano.
Vedi: stackoverflow.com/questions/15183982/…
Stokes penso che io non sono in grado di ottenere all’interno che se la condizione..sembra .è uguale non funziona
Sembra improbabile che l’Intero equals() è rotto. Tenta di eseguire il debug.

OriginaleL’autore SunJCarkeY | 2013-11-24

2 risposte

  1. 6

    Solo scorrere sul primo arraylist con maggiore lunghezza e di controllo per contiene in secondo arraylist , se trovato altro di non fare nulla di

    for(int counter = 0; counter < firstList.size(); counter++) {
        if(secondList.contains(firstList.get(counter))) {
              comparingList.set(counter,1);
          }
      }

    Intero programma java

    Basta provare a eseguire il seguente programma in http://www.compileonline.com/compile_java_online.php

    import java.util.ArrayList;
    import java.util.List;
    
    public class CompareArrayListTest{
    
     public static void main(String[] args) {
    
        ArrayList<String> firstList = new ArrayList<String>();
    
        firstList.add("book1");
        firstList.add("book2");
        firstList.add("book3");
        firstList.add("book4");
    
        ArrayList<String> secondList = new ArrayList<String>();
    
        secondList.add("book1");
        secondList.add("book2");
        secondList.add("book3");
    
        List<Integer> comparingList = new ArrayList<Integer>();
        //adding default values as one
        for (int a = 0; a < firstList.size(); a++) {
            comparingList.add(0);
    
        }
    
        for (int counter = 0; counter < firstList.size(); counter++) {
            if (secondList.contains(firstList.get(counter))) {
                comparingList.set(counter, 1);
            }
        }
    
        System.out.println(comparingList);
    
    }

    BitSet bitset = new BitSet();
    //adding default values as one
    for (int a = 0; a < firstList.size(); a++) {
        comparingList.add(0);
    
    }
    
    for (int counter = 0; counter < firstList.size(); counter++) {
        for (int counter2 = 0; counter < secondList.size(); counter++) {
            if (secondList.get(counter2).equals(firstList.get(counter))) {
                bitset.set(counter, 1);
            }
        }
    }
    qual è il problema con la risposta ?
    non funziona..non riesco a ottenere thro’ se la condizione…
    la condizione è Ok, ho incollato il tutto con la stessa condizione, a controllare la stessa preferite editor java o online su compileonline.com/compile_java_online.php
    il suo po ‘ diverso di quanto si pensi..perchè..se cartella2 in firstList e books2 in secondList sono uguali, 1 sarà impostato in terza lista in 2 ° indice. Così, questo significa che ho bisogno di conoscere l’indice di cartella2 in firstList.
    quindi probabilmente la tua domanda non è chiara, non hai mai detto che si desidera mantenere l’ordine.

    OriginaleL’autore Santosh Joshi

  2. 2

    È possibile trasformare le liste di imposta, e quindi utilizzare Insieme.retainAll metodo di intersezione tra i diversi gruppi. Una volta che si intersecano tutti i set, si sono lasciati con gli elementi comuni, e si può trasformare la risultante di elenco.

    OriginaleL’autore Amir Kost

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *