Back

Explore Courses Blog Tutorials Interview Questions
0 votes
3 views
in Java by (10.2k points)

Here's my problem - I'm looking for (if it even exists) the enum equivalent of ArrayList.contains();.

Here's a sample of my code problem:

enum choices {a1, a2, b1, b2};

if(choices.???(a1)}{

//do this

Now, I realize that an ArrayList of Strings would be the better route here but I have to run my enum contents through a switch/case elsewhere. Hence my problem.

Assuming something like this doesn't exist, how could I go about doing it?

1 Answer

0 votes
by (46k points)

This should do it:

public static boolean contains(String test) {

    for (Choice c : Choice.values()) {

        if (c.name().equals(test)) {

            return true;

        }

    }

    return false;

}

This way means you do not have to worry about adding additional enum values later, they are all checked.

 If the enum is very large you could stick the values in a HashSet:

public static HashSet<String> getEnums() {

  HashSet<String> values = new HashSet<String>();

  for (Choice c : Choice.values()) {

      values.add(c.name());

  }

  return values;

}

Then you can just do: values.contains("your string") which returns true or false.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
asked Jul 29, 2019 in Java by Suresh (3.4k points)
0 votes
1 answer
0 votes
1 answer
asked Nov 24, 2019 in Java by Anvi (10.2k points)

Browse Categories

...