Итак, у меня есть ArrayList, который содержит значения String в моем методе main.
И я хочу go и найти в классе enum ссылку на каждый элемент моего ArrayList и установить его в тот же index.
Допустим, мой массив arrayList равен ["GUA", "AUG", "CUA"]
. Я хочу иметь в своем выводе [Val, Met, Leu]
.
. Поэтому я пытаюсь исправить метод find (), чтобы он возвращал arrayList - не просто строка, а без использования 'for' l oop в main (). Но он всегда выдаст ошибку при попытке изменить тип возвращаемого значения.
Есть идеи?
public enum Abreviation {
Ala("GCU", "GCC", "GCA", "GCG"),
Arg("CGU", "CGC", "CGA", "CGG", "AGA", "AGG"),
Asn("AAU", "AAC"),
Asp("GAU", "GAC"),
Cys("UGU", "UGC"),
Glu("GAG", "GAA"),
Gln("CAG", "CAA"),
Gly("GGU", "GGC", "GGA", "GGG"),
His("CAC", "CAU"),
Ile("AUU", "AUC", "AUA"),
Leu("UUA", "UUG", "CUU", "CUC", "CUA", "CUG"),
Lys("AAA", "AAG"),
Met("AUG"),
Phe("UUU", "UUC"),
Pro("CCU", "CCC", "CCA", "CCG"),
Pyl("UAG"),
Sec("UGA"),
Ser("UCU", "UCC", "UCA", "UCG", "AGU", "AGC"),
Thr("ACU", "ACG", "ACA", "ACC"),
Trp("UGG"),
Tyr("UAU", "UAC"),
Val("GUU", "GUC", "GUA", "GUG"),
Fin("UAA")
;
private final List<String> arn;
private Abreviation(final String... arn) {
this.arn = Arrays.asList(arn);
}
public boolean contains(final String codon) {
return this.arn.contains(codon);
}
}
public class MainMain {
public static void main(String[] args) {
ArrayList <String> strings = new ArrayList<String>();
strings.add("GUA");
strings.add("AUG");
strings.add("CUA");
for (int i = 0; i < strings.size(); i++) {
System.out.println(find(strings.get(i), strings));
}
}
public static List<String> find(final String codon, List<String> strings) {
for (final Abreviation abb : Abreviation.values()){
if (abb.contains(codon)) {
int arn = strings.indexOf(codon);
strings.set(arn, abb.name());
return strings;
}
}
throw new IllegalArgumentException("Erreur");
}
}