rechercher des mots dans java tableau et tableau unique avec double mots - utilisation de la méthode
Je suis nouveau sur le java, et je suis confondu avec le problème.
C'est ce que j'ai trouvé jusqu'à présent.
Je travaille toujours sur elle, si je viens avec tout progrès, je vais le poster ici.
public class charArray {
public static void main(String[] args) {
String[] strArray = new String[] {"apple", "ball", "cat", "apple", "ball", "apple"};
//output should be ["apple", "ball"]
checkDuplicate(strArray);
}
public static String[] checkDuplicate(String[] strArray){
String[] newArray = new String[]{};
for(int i = 0; i < strArray.length; i++){
for(int j = 0; j < i; j++){
if (strArray[i].equals(srtArray[j])){
newArray = strArray[i];
}
}
}
return newArray[];
}
}
De nouveaux progrès:
Ok, mon médiocre tête a disparu ce jour: (et la solution)
Il imprime le réseau unique de Dupliquer des éléments.
Mais maintenant, j'ai besoin de mettre en œuvre le même code, par l'appel d'une méthode.
Toute aide est appréciée.
import java.util.*;
public class setChar {
public static void main(String[] args) {
String[] strArray = new String[] {"apple", "ball", "cat", "apple", "ball", "apple"};
Set set = new HashSet();
Set uniqueSet = new HashSet();
for(int i = 0; i < strArray.length ; i++ ){
boolean b = set.add(strArray[i]);
if(b == false){
uniqueSet.add(strArray[i]);
}
}
Iterator it = uniqueSet.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
}
}
La sortie est:
balle
apple
Enfin mis en œuvre avec méthode, avec le bon type de retour.
S'il vous plaît laissez-moi savoir, si cela peut être encore optimisé.
Merci à tous pour vos suggestions. Voici le code de travail:
public class retUnique {
public static void main(String[] args) {
String[] strArray = new String[] {"apple", "ball", "cat", "apple", "ball", "apple"};
System.out.println(printUnique(strArray));
}
public static Set<String> printUnique(String[] strArray){
Set<String> set = new HashSet<String>();
Set<String> uniqueSet = new HashSet<String>();
for(int i = 0; i < strArray.length ; i++ ){
boolean b = set.add(strArray[i]);
if(b == false){
uniqueSet.add(strArray[i]);
}
}
return(uniqueSet);
}
}
- Pourrait essayer avec un LinkedHashSet (je crois que c'est?) qui autorise uniquement les entrées uniques, même lorsque vous ajoutez plusieurs entrées sont les mêmes.
- ce que vous voulez ro de retour, les mots uniques, ou ghe dupplicates?
- AlexWien - je retourner mots uniques de juste le double de mots.
- Cela peut avoir été déjà répondu ici stackoverflow.com/questions/13337296/...
- Merci pour le lien de Lee. Mais le problème n'est pas la même. Sur le lien que vous avez posté, les éléments de la liste est triée. Mais sur la mienne, j'ai besoin d'une liste unique d'éléments, qui sont en Double. Pas tous les éléments dans la liste. Eh bien, j'ai une solution posté, merci de voir si cela peut être optimisé, et mis en œuvre d'une méthode.
Vous devez vous connecter pour publier un commentaire.
Une option facile est d'utiliser un
Set
" comme conteneur au lieu d'un tableau. Il va automatiquement s'assurer que seules les valeurs uniques sont présents.Vous pouvez regarder des exemples de TreeSet et HashSet.
set.add(strArray[i]);
sera lui-même s'assurer queset
a seulement des chaînes uniquesSet::addAll
ou le constructeur lui-même pour ajouter toutes les chaînes de caractères dans le jeu au lieu de l'itération.Collections.frequency(..)>1
.Quelque chose comme cela devrait fonctionner je pense. Été un moment depuis que j'ai codé en Java, donc si quelqu'un veut faire des modifications, s'il vous plaît.
Mais ce que tout le monde a été suggérant est la bonne idée. Jeux de le rendre vraiment facile pour supprimer les doublons, donc vous devez les utiliser. Nous allons pas réinventer la roue.
Pour détecter dupplicates, si c'est votre question, ajouter tous les elememts de la matrice à un Jeu, si elle est définie.ajouter() retourne false, alors c'est un dupplicate, de sorte que vous pouvez ajouter ce elemen à votre liste de résultats de dupplictes.
Ou si votre question est celle du sens pour retourner les valeurs sans les doublons, vous pouvez retirnthe ensemble, ou de convertir l'ensemble de la liste avant de la retourner.