Pourquoi java.util.ArrayList.remove (int index) ne fonctionne pas correctement le code ci-dessous?

Pratip Chakraborty:

Je tentais d'exécuter le code ci - dessous. Il a couru sans aucune erreur de compilation. Mais la remove(int index)méthode ne fonctionne pas comme prévu.

import java.util.*;
public class Stones {
    static int findLastStoneWeight(ArrayList<Integer> weight)
    {
        while(true)
        {
            Collections.sort(weight);
            int n=weight.size();
            if (n==1)
                return weight.get(0);
            else if(weight.get(n-1)>weight.get(n-2))
            {
                int temp1=weight.get(n-1);
                int temp2=weight.get(n-2);
                weight.add(n-2,temp1-temp2);
                weight.remove(n-1);
                System.out.println(weight.size()); //The new size of weight should be decreased by 1 but it does not!!
            }
            else
            {
                weight.remove(n-1);
                weight.remove(n-2);
            }
        }
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        ArrayList<Integer> weight=new ArrayList<Integer>();
        System.out.println("Enter the weights:");
        while(true)
        {
            int w=sc.nextInt();
            if(w<0)
                break;
            weight.add(w);
        }
        int lswt=findLastStoneWeight(weight);
        System.out.println("Last stone weight:"+lswt);
    }
}

Quand je la remove(int index)méthode sur la ArrayList weighttaille du ArrayListdevrait se réduit de 1 , mais il reste le même. Pourquoi?

Mureinik:

dans la else ifbranche que vous avez noté, vous devez d' abord ajouter un élément à la weightliste de tableaux:

weight.add(n-2,temp1-temp2);

puis supprimer un élément:

weight.remove(n-1);

Dans l'ensemble, vous avez ajouté un élément et retiré un élément, de sorte que la taille de la liste à la fin de la méthode sera même comme dans le début de metho'd.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=239029&siteId=1
conseillé
Classement