Commande les valeurs de l'enum
Je me demandais si il existe un moyen de commande enum pour les différentes classes. Si par exemple, j'ai un groupe fixe, de produits chimiques qui réagissent différemment à d'autres produits chimiques, dont certains fortement, certains faiblement. En gros, je veux être en mesure de changer l'ordre dans lequel elles sont disposées selon le produit chimique, le groupe est censé réagir(j'.e en fonction de la classe.). Je sais que je suis censé utiliser Comparables, mais je ne suis pas sûr de savoir comment faire. Si je ne suis pas assez clair, laisser un commentaire et je vais l'expliquer plus loin.
Grâce.
public static enum Chem {
H2SO4, 2KNO3, H20, NaCl, NO2
};
Donc, j'ai quelque chose qui ressemble à ça et je sais déjà comment chaque produit chimique de réagir à certains autres produits chimiques. J'ai simplement envie de prendre le Chems basée sur les produits chimiques, il serait réagissant avec. C'est à peu près tout ce que j'ai.
Je ne dirais pas la liste. Ils sont de type enum.
Certainement pas assez clair. Pourriez-vous montrer un peu de code?
enum
membres doivent être valables Java identifiants. 2KNO3
n'est pas valide Java identificateur puisqu'il commence par un chiffre.
OriginalL'auteur Ester | 2012-05-05
Vous devez vous connecter pour publier un commentaire.
De mettre en œuvre différentes
Comparator
's ( voir http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html )OriginalL'auteur Mattias Isegran Bergander
Voici un exemple vous montrant les mêmes valeurs de l'enum triés selon différents critères:
De SORTIE est
OriginalL'auteur Guillaume Polet
Vous pouvez mettre autant de comparateurs dans l'énumération que vous aimez, voir exemple ci-dessous:
Pour voir les comparateurs en action:
OriginalL'auteur MaxZoom
Supposons que vous avez une énumération d'éléments:
et que vous souhaitez trier dans un ordre donné, je peux le faire:
où
ElementComparator
peut être quelque chose comme:La nature de la commande de critères n'est pas clair dans votre question. Il semble que c'est à propos de quelque chose lié à des réactions chimiques. Je suppose que ces critères devraient aller dans le
Comparator
de décider qui enum élément est plus grand que les autres compte tenu d'une réaction chimique.OriginalL'auteur Edwin Dalorzo
Vous dire les objets de la représentation de vos produits chimiques sont les énumérations? Que sooooounds étrange mise en œuvre si l'on peut dire: les énumérations sont vraiment plus adapté à des "propriétés" de quelque chose.
Mais de toute façon... si vous voulez vraiment les représenter comme des enums et ensuite de les trier, je dirais implemeting un Comparateur qui permet de trier les énumérations de votre type particulier, puis dans sa méthode compare (), faire la comparaison appropriée, par exemple:
Ensuite, vous pouvez passer cette comparaison à la méthode de tri, collection ordonnée de constructeur etc impliqué.
Vous pouvez étendre votre enum sous-classe pour comprendre ce que des méthodes supplémentaires, par exemple, de la réactivité(), que vous avez besoin.
OriginalL'auteur Neil Coffey