You need to get indexes for the brackets in your arraylist. For the data structure you use I think should have looked at javadoc to get information about what you can do using it. ArrayList.contains() is a useful method for ArrayList, however, ArrayList.indexOf() would be more useful for this situation.
public int indexOf(Object o)
Returns the index of the first occurrence of the specified element in this list, or -1
if this list does not contain the element. More formally, returns the lowest index i
such that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.
Using this method you can get the indexes of two consecutive opening-closing brackets, of course, if they exist. After you get the indexes, you can iterate between them. It is kinda parsing work, so you might get your hands dirty by trying to implement some recursive methods.Ex., { "(", "(","2", "+", "4", ")", "/", "2", ")"}. For nested statements like this, you should research more.
What you should need to know is tree for complex statements. I strongly advise you to check tree data structure.
Edit : You can also find numerous stack implementations for this problem. Keywords: stack expression parser algorithm.