ArrayList <Integer> get/suppression de méthode

lorsque j'utilise la liste de tableaux en Java, il y a certaines choses que je ne comprends pas. Voici mon code d'initialisation:

 ArrayList<Integer> list = new ArrayList <Integer> ();
list.add (0);
list.add (1);

parfois j'ai besoin de supprimer un objet par son index:

list.remove (0) //delete the object in the first box

mais parfois, je veux supprimer un objet par son contenu:

list.remove (0) //delete the object HAS Which value of 0

ce code est très ambiguë. Pour clarifier ce que je veux faire dans le code, j'ai spécifier le type comme ceci:

list.remove ((Object) 0) //delete the object which has a value of 0

Si je ne fais pas CA, le seul moyen de savoir les méthodes qui sont appelées, est de mettre le pointeur de la souris sur la méthode à voir:
java.util.Liste de tableaux.supprimer boolean (Object Object)

Java, Mais comment fait-il la différence?
est-il un pointeur de méthode?
Est-il moins ambigu façon de le faire?

merci beaucoup, désolé pour mon anglais.

PS: je dois dire que j'ai enfin utilisé SparseIntArray mais je suis curieusement