Что он возвращает “if (s.compareTo (cuentas.get (i) .obtenerCuenta ()) == 0)”

Я нахожусь в этом коде

public boolean eliminar (String s){
        for (int i = 0; i < cuentas.size(); i++) {
            if(s.compareTo(cuentas.get(i).obtenerCuenta())==0){
                cuentas.remove(i);
                return true;
            }
        }
        return false;
    }

но в этой инструкции мне не удается понять ни что ни, как возвращает true или false

s.compareTo(cuentas.get(i).obtenerCuenta())==0

как оно функционирует?

1
задан 22.01.2017, 02:23
0 ответов

s.compareTo(cuentas.get(i).obtenerCuenta())==0 как оно функционирует?

s это цепь

cuentas это список

cuentas.get(i) ты получаешь элемент списка счетов

cuentas.get(i).obtenerCuenta() ты получаешь счет элемента

тогда s он сравнивается со счетом элемента

функция compareTo проверять: https://www.tutorialspoint.com/java/java_string_compareto.htm

Часть, которая интересует нас, - возврат функции compareTo

Стоимость возврата Стоимость 0, если параметр равен этой цепи; стоимость, ниже 0, если параметр больше, чем эта цепь; и стоимость большая, что 0, - если параметр - несовершеннолетний этой цепи.

Тогда:

если он равен в 0 означай, что s он равен счету элемента

3
ответ дан 03.12.2019, 17:35

Метод compareTo класса String стоит для того, чтобы сравнить цепи, этот метод определен в интерфейсе Comparable, стоимость сравнения - типа int, что определяет дистанцию различия между двумя цепями в зависимости от символов, которые составляют ее, если дистанция - нуль, тогда ты понимаешь, что стоимость равна

Следовательно ты сравниваешь переменную s с каждым счетом списка, если они равны, он удаляет ее из списка.

Adicionalmente, интерфейс Comparable она более использована, чтобы реализовывать распоряжение arrays, если ты хочешь сравнить равенство, лучше использовать метод .equals что возвращает стоимость типа Boolean (true или false), этот метод определен в классе Object но класс String sobreescribe, чтобы сравнивать равенство контента цепей.

if (s.equals(cuentas.get(i).obtenerCuenta()) 

Кроме того ты должен принимать во внимание, что, сравнив цепь с недействительной стоимостью, поведение не является сходным.

С методом equals если у счета будет недействительная стоимость, результат будет false, взамен используя метод .compareTo чтобы сравнивать с недействительной стоимостью Java он бросит в тебя кампанию исключение NullPointerException во время выполнения.

1
ответ дан 03.12.2019, 17:35
  • 1
    В Java, у договоренностей нет mé совсем get, но List sí. –  22.01.2017, 16:25