Ich arbeite gerade an einem Code, um Arrays basierend auf ihren Elementen zu gruppieren, und ich hoffe, dass du mir mit deiner Weisheit helfen kannst.Gruppen-Arrays basierend auf ihren Elementen
Ich habe gegeben folgende Arrays:
List<String> list1 = new ArrayList<String>(Arrays.asList("A", "B", "C", "F", "I"));
List<String> list2 = new ArrayList<String>(Arrays.asList("B", "C", "D", "E", "F"));
List<String> list3 = new ArrayList<String>(Arrays.asList("J", "K", "B", "L", "F"));
List<String> list4 = new ArrayList<String>(Arrays.asList("L", "K", "D", "C", "J"));
Jetzt mag ich, welche diese Listen haben drei Elemente gemeinsam vergleichen und speichern, dass Listennamen in einer neuen Liste/Array.
commonList1{List2, List3,} - (B,C,F)
commonList4{List5} - (K,J,L)
Hat jemand eine intelligentere Idee für das zu tun, statt durch alle Listen laufen, zu vergleichen, die jeweils mit einem anderen und sucht, wie viele Listen die gleiche Kreuzung hat?
Beste Wünsche Tom
Am besten mit einem 'set' – notyou
Zumindest die naive' Set' Implementierung wäre schneller. Daher sammle jedes in seine eigene Menge und berechne dann die gesetzten Schnittpunkte, so wie du es mit Arrays tun würdest. Der Vorteil, 'Set' kann' contains' in 'O (1)' (fast) beantworten (zumindest im Durchschnitt). – Zabuza
IMHO Duplikat davon: https://Stackoverflow.com/a/36110216/1828296 – lospejos