में मुझे लगता है मैं अगर सूची में एक ही नाम होने के लिए किसी भी कारों है खोजने के लिए अब एक ArrayList<Car>
ढूँढना डुप्लिकेट मानों ArrayList
उदाहरण
लिएclass Car{
String carName;
int carType;
}
है,। इसे करने का बेहतरीन तरीका क्या है?
में मुझे लगता है मैं अगर सूची में एक ही नाम होने के लिए किसी भी कारों है खोजने के लिए अब एक ArrayList<Car>
ढूँढना डुप्लिकेट मानों ArrayList
उदाहरण
लिएclass Car{
String carName;
int carType;
}
है,। इसे करने का बेहतरीन तरीका क्या है?
एक तुलनित्र बनाएँ:
public class CarComparator implements Comparator<Car>
{
public int compare(Car c1, Car c2)
{
return c1.carName.compareTo(c2.carName);
}
}
अब एक SortedSet
को ArrayList
की सभी कारों जोड़ने के लिए, अधिमानतः TreeSet
; अंत में अपने duplicates
आप होगा सभी डुप्लिकेट में
List<Car> duplicates = new ArrayList<Car>();
Set<Car> carSet = new TreeSet<Car>(new CarComparator());
for(Car c : originalCarList)
{
if(!carSet.add(c))
{
duplicates.add(c);
}
}
: देखते हैं अगर डुप्लिकेट डुप्लिकेट की सूची में जोड़ें।
अवहेलना अपने Car
कक्षा में equals()
और hashCode()
तरीकों और इस तरह के HashSet
बजाय ArrayList
के रूप में एक Set
कार्यान्वयन का उपयोग करें।
List<Car> cars = getCars();
Set<String> names = new HashSet<String>();
for (Car car:cars) {
if (names.contains(car.getName()) {
duplicate(car); // some magic handler
} else {
names.add(car.getName());
}
}
नोट::
मैं स्पर्श नहीं कर सकते कार object..I सिर्फ कार वस्तु की ArrayList तो मैं अगर सूची में किसी भी कारों एक ही नाम है खोजने के लिए है:
यह मेरी उत्पादन होता है। ..... – Makky
इस प्रयास करें यह आप कार ऐसे नाम हैं जो डुप्लिकेट हैं दे देंगे। एक फ़ॉलो पर (यदि आप कार वस्तुओं की जरूरत है) सूची में से उन लोगों के नामों के साथ सभी कारों निकालने की जाएगी
उपरोक्त उदाहरण देखें .... धन्यवाद वैसे भी – Makky
यह समाधान सर्वोत्तम मतदान समाधान से बेहतर तरीका है। यह ओ (एन) एल्गोरिदम ओ (एन) स्पेस के साथ है लेकिन दूसरा समाधान ओ (nlogn) –
आप
class Car{
String carName;
int carType;
}
और
List<Car> list;
कि कारों की एक सूची है, तो आप
public static boolean hasDuplicates(List<Car> p_cars) {
final List<String> usedNames = new ArrayList<String>();
for (Car car : p_cars) {
final String name = car.carName;
if (usedNames.contains(name)) {
return true;
}
usedNames.add(name);
}
return false;
}
की तरह एक विधि हो सकता था कि क्या पता लगाने के लिए की सूची कारों में डुप्लिकेट नाम वाली कारें हैं।
मैं एक समान कार्यक्रम है कि आप शब्दों से पता चलता है कि जहां एक ArrayList में दोहराया टिप्पणी कर रहे हैं की तरह
ओह, वैसे, चर, और अन्य सामग्री (भी यह ArrayList सामग्री और बड़ा स्ट्रिंग से पता चलता) किया स्पेनिश में, क्योंकि मैं स्पैनिश बोलता हूं:/लेकिन, अगर आप कोड देखते हैं तो आप देख सकते हैं कि मैंने समस्या को हल करने के लिए 2 बक्से के साथ हल किया है!
Ingrese un string: vaca
Ingrese un string: perro
Ingrese un string: dinosaurio
Ingrese un string: gato
Ingrese un string: cebra
Ingrese un string: DiNoSauRiO
Ingrese un string: VACA
Ingrese un string: hamster
Ingrese un string: gato
Ingrese un string: canario
Ingrese un string: elefante
Ingrese un string: tortuga
Ingrese un string: fin
Posicion: 0 del array: vaca
Posicion: 1 del array: perro
Posicion: 2 del array: dinosaurio
Posicion: 3 del array: gato
Posicion: 4 del array: cebra
Posicion: 5 del array: DiNoSauRiO
Posicion: 6 del array: VACA
Posicion: 7 del array: hamster
Posicion: 8 del array: gato
Posicion: 9 del array: canario
Posicion: 10 del array: elefante
Posicion: 11 del array: tortuga
vuelta nro: 0 del primer for
String: vaca no se repite con la posicion 1
String: vaca no se repite con la posicion 2
String: vaca no se repite con la posicion 3
String: vaca no se repite con la posicion 4
String: vaca no se repite con la posicion 5
el string vaca se repite en la posicion 6
String: vaca no se repite con la posicion 7
String: vaca no se repite con la posicion 8
String: vaca no se repite con la posicion 9
String: vaca no se repite con la posicion 10
String: vaca no se repite con la posicion 11
vuelta nro: 1 del primer for
String: perro no se repite con la posicion 2
String: perro no se repite con la posicion 3
String: perro no se repite con la posicion 4
String: perro no se repite con la posicion 5
String: perro no se repite con la posicion 6
String: perro no se repite con la posicion 7
String: perro no se repite con la posicion 8
String: perro no se repite con la posicion 9
String: perro no se repite con la posicion 10
String: perro no se repite con la posicion 11
vuelta nro: 2 del primer for
String: dinosaurio no se repite con la posicion 3
String: dinosaurio no se repite con la posicion 4
el string dinosaurio se repite en la posicion 5
String: dinosaurio no se repite con la posicion 6
String: dinosaurio no se repite con la posicion 7
String: dinosaurio no se repite con la posicion 8
String: dinosaurio no se repite con la posicion 9
String: dinosaurio no se repite con la posicion 10
String: dinosaurio no se repite con la posicion 11
vuelta nro: 3 del primer for
String: gato no se repite con la posicion 4
String: gato no se repite con la posicion 5
String: gato no se repite con la posicion 6
String: gato no se repite con la posicion 7
el string gato se repite en la posicion 8
String: gato no se repite con la posicion 9
String: gato no se repite con la posicion 10
String: gato no se repite con la posicion 11
vuelta nro: 4 del primer for
String: cebra no se repite con la posicion 5
String: cebra no se repite con la posicion 6
String: cebra no se repite con la posicion 7
String: cebra no se repite con la posicion 8
String: cebra no se repite con la posicion 9
String: cebra no se repite con la posicion 10
String: cebra no se repite con la posicion 11
vuelta nro: 5 del primer for
String: DiNoSauRiO no se repite con la posicion 6
String: DiNoSauRiO no se repite con la posicion 7
String: DiNoSauRiO no se repite con la posicion 8
String: DiNoSauRiO no se repite con la posicion 9
String: DiNoSauRiO no se repite con la posicion 10
String: DiNoSauRiO no se repite con la posicion 11
vuelta nro: 6 del primer for
String: VACA no se repite con la posicion 7
String: VACA no se repite con la posicion 8
String: VACA no se repite con la posicion 9
String: VACA no se repite con la posicion 10
String: VACA no se repite con la posicion 11
vuelta nro: 7 del primer for
String: hamster no se repite con la posicion 8
String: hamster no se repite con la posicion 9
String: hamster no se repite con la posicion 10
String: hamster no se repite con la posicion 11
vuelta nro: 8 del primer for
String: gato no se repite con la posicion 9
String: gato no se repite con la posicion 10
String: gato no se repite con la posicion 11
vuelta nro: 9 del primer for
String: canario no se repite con la posicion 10
String: canario no se repite con la posicion 11
vuelta nro: 10 del primer for
String: elefante no se repite con la posicion 11
vuelta nro: 11 del primer for
el array es: [vaca, perro, dinosaurio, gato, cebra, DiNoSauRiO, VACA, hamster, gato, canario, elefante, tortuga]
El array mas largo es: dinosaurio y tiene 10 caracteres
Los Strings repetidos son[vaca, dinosaurio, gato]
BUILD SUCCESSFUL (total time: 2 minutes 48 seconds)
क्यों हैशसेट का उपयोग नहीं कर रहा है। यह सभी परिचालनों के लिए ओ (1) प्रदान करता है जबकि आपकी पसंद 'ट्रीसेट' ओ (लॉगऑन) है। क्या मै गलत हु? –
जावा 8 स्वाद के साथ: ' डुप्लिकेशन = सेट सेट करें।newHashSet(); Stream.of (car1, car2, car3) .sorted ([तुलनित्र])। ((कार, कार 2) -> { अगर (car.equals (car2)) { duplication.add (car2); } रिटर्न कार 2; }); System.out.println (डुप्लिकेशन); ' –
chaiyachaiya