Comment créer une liste des tableaux en utilisant java

user6348718:

J'ai un arrayList avec des valeurs que {a,b,a,c,d,b,a}je veux faire une comparaison de chaque élément dans la liste et insérez la pairde common indexesdans un List of arrayou quelque chose en utilisant java

exemple de sortie: [[0,2,6], [1,4]] explication: aest à index 0,2,6et best à des indices 1,4Jusqu'à présent , j'ai ceci:

    HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
        List<String> name = new ArrayList<String>();
        letter.add("a");
        letter.add("b");
        letter.add("c");
        letter.add("b");
        letter.add("a");

         for (int i = 0; i < letter.size(); i++) {
            for (int j = 1; j < letter.size(); j++) {
                if (letters.get(i).equals(letters.get(j)) && i != j) {
                    hashMap.put(i, j);
                }
            }
        }
        System.out.println(hashMap); //o/p: {0=4, 1=3, 3=1}
        List<int[]> myList = new ArrayList<int[]>();
        Iterator entries = hashMap.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            Integer key = (Integer)entry.getKey();
            Integer value = (Integer)entry.getValue();
            myList.add(new int[] {key,hashMap.get(key)});
        }
        System.out.println(myList.toString()); 
        //O/P: [[I@380fb434, [I@668bc3d5, [I@3cda1055]

MISE À JOUR: l'idée était d'obtenir [[0,4], [1,3], [3,1]] comme éléments myListmais je ne suis pas en mesure d'obtenir cela. Toute aide est très appréciée! Merci!

Basé sur le tableau ci - dessus des indices, je veux comparer les éléments dans un autre List Bet Cà ces indices - ce qui signifie des éléments à comparer les indices 0,2,6dans List B and Cet vérifier si les trois éléments sont égaux. Idem pour les éléments à l' index1,4

Code_Mode :

Vous ne pouvez pas utiliser Mapla façon dont vous avez utilisé pour vérifier tous les index de chaîne. Vous pouvez essayer avec ArrayListcomme ci - dessous,

import java.util.*;

public class ListCharIndexes {
    public static void main(String[] args) {
        List<String> letter = Arrays.asList("a","b","a","c","d","b","a");
       //letter= Arrays.asList("a","b","c","b","a");
        List<List<Integer>> result=new ArrayList<>();
        Set<String> result1=new HashSet<>();
        for (int i = 0; i < letter.size(); i++) {
            if(result1.add(letter.get(i))){ //skip String if it is already processed
                List<Integer> indexes=indexOfAll(letter.get(i), letter);
                if(indexes.size()>1)     //add only pairs
                    result.add(indexes);
            }
        }
        System.out.println(result);
    }
    static List<Integer> indexOfAll(String obj, List<String> list) {
        final List<Integer> indexList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++)
            if (obj.equals(list.get(i))) 
                indexList.add(i);
        return indexList;
    }
}

O / P:

[[0, 2, 6], [1, 5]]

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=179963&siteId=1
conseillé
Classement