indexOf() ne sera pas à trouver un type d'objet personnalisé
Le code suivant ne me donne pas de droit de réponse.
class Point {
int x; int y;
public Point(int a,int b){
this.x=a;this.y=b;
}
}
class A{
public static void main(String[] args){
ArrayList<Point> p=new ArrayList<Point>();
p.add(new Point(3,4));
p.add(new Point(1,2));
System.out.println(p.indexOf(1,2));
}
}
Cela donne -1
;
En général, si arraylist de point est donné, comment pouvons-nous trouver l'indice d'un point particulier dans la gamme ?
ce n'indexof faire? n'avez-vous point d'utilisation en classe de java ou de celle que vous avez définie? celle que vous avez définie n'a pas de constructeur?
Plus précisément, avez-vous lu la JavaDoc de la méthode indexOf? Si non, que devrait être votre premier port d'escale. L'API Java est bien documenté sur l'ensemble.
indexOf prend un
il n'est pas clair ce qu'il a utilisé dans son code. classe point de java ou de la classe point qu'il définit
Le code ci-dessus ne serait même pas compiler. Lire la javadoc (indice: ça parle spécifiquement sur equals()), respecter les conventions de nommage Java (classes commencent par une majuscule), et indenter ton code correctement.
Plus précisément, avez-vous lu la JavaDoc de la méthode indexOf? Si non, que devrait être votre premier port d'escale. L'API Java est bien documenté sur l'ensemble.
indexOf prend un
object
, vous auriez besoin de passer dans un point
objet que vous cherchez à trouver.il n'est pas clair ce qu'il a utilisé dans son code. classe point de java ou de la classe point qu'il définit
Le code ci-dessus ne serait même pas compiler. Lire la javadoc (indice: ça parle spécifiquement sur equals()), respecter les conventions de nommage Java (classes commencent par une majuscule), et indenter ton code correctement.
OriginalL'auteur ajay | 2014-07-25
Vous devez vous connecter pour publier un commentaire.
indexOf nécessite l'objet en tant qu'entrée. S'il ne trouve pas l'objet que vous êtes en passant, elle retourne -1. Vous avez besoin de passer l'objet dont l'emplacement dans la liste de tableaux que vous cherchez pour l'entrée dans la fonction indexOf. Vous devriez également de remplacer hashcode et equals pour votre classe dans ce cas.
Remplacer hashcode et equals dans votre classe Point. Ensuite, une fois que vous créer des instances de cette classe Point (à l'aide du nouveau mot-clé) et les ajouter à la liste de tableaux, vous pouvez utiliser le indexOf appel sur la liste de tableaux à l'aide de l'un quelconque des objets en tant que paramètre à la indexOf appel.
Classe Point
Classe de Test (vous l'avez appelé "a"):
OriginalL'auteur ali haider
Vous avez besoin pour créer un point de passer dans la méthode indexOf.
Mais que le changement en lui-même renvoie toujours -1. Voir la doc api pour indexOf:
C'est à l'aide est égal à décider s'il est trouvé une correspondance. Vous n'avez pas remplacé la méthode equals sur votre classe point, c'est donc à l'aide de la valeur par défaut de mise en œuvre en java.lang.L'objet, qui compare les références, et ne renvoie vrai si les deux références pointent vers le même objet.
Remplacer equals et hashcode sur votre classe point, comme:
et de cette façon, deux instances de la classe peuvent être comparés en valeur.
OriginalL'auteur Nathan Hughes
ArrayList.indexOf()
n'accepte pas de deux entiers en argument. Vous devez saisir un objet, qui est censé être unPoint
objet.Si vous voulez continuer à appeler
ArrayList.indexOf(int, int)
, vous devez créer une sous-classe deArrayList
, la mise en œuvre deindexOf(int,int)
.Le code suivant doit trouver le voulait objet pour vous. Tout d'abord, vous aurez besoin de remplacer la méthode equals de la
Object
classe dans lePoint
classe, afin de comparer les deux points.Seconde, vous pouvez appeler
indexOf(Object)
:PS: Vous devez suivre les conventions de nommage Java; classes doit commencer avec une lettre majuscule.
Vous avez raison. J'ai supprimé la valeur null est à vérifier.
Il convient de noter que si vous remplacez
equals(Object)
alors vous devriez vraiment aussi remplacerhashCode()
.OriginalL'auteur MC Emperor
L'argument de
indexOf()
est un Objet. Passer l'un de vos objets point.OriginalL'auteur whiskeyspider