Причина использования ключевого слова final В переменных java [duplicate]

Дубликат https://stackoverflow.com/a/51334221/1139196 . Я немного изменил код, чтобы соответствовать вашему вопросу.

import java.util.Arrays;
import java.util.List;

public class LongestCommonSubstring {
    public static char[] lcs(List l1, List l2) {
        int[][] d = new int[l1.size() + 1][l2.size() + 1];
        for (int i1 = 1; i1 <= l1.size(); i1++) {
            for (int i2 = 1; i2 <= l2.size(); i2++) {
                if (l1.get(i1 - 1).equals(l2.get(i2 - 1))) {
                    d[i1][i2] = d[i1 - 1][i2 - 1] + 1;
                } else {
                    d[i1][i2] = Math.max(d[i1 - 1][i2], d[i1][i2 - 1]);
                }
            }
        }
        int i1 = l1.size(), i2 = l2.size();
        char[] result = new char[d[i1][i2]];
        while (i1 > 0 && i2 > 0) {
            if (l1.get(i1 - 1).equals(l2.get(i2 - 1))) {
                result[d[i1][i2] - 1] = ((String) l1.get(i1 - 1)).charAt(0);
                i1 -= 1;
                i2 -= 1;
            } else if (d[i1][i2] == d[i1 - 1][i2]) {
                i1 -= 1;
            } else {
                i2 -= 1;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        List l1 = Arrays.asList("elete".split(""));
        List l2 = Arrays.asList("leet".split(""));
        System.out.println(new String(lcs(l1, l2)));
    }
}

-1
задан Omid 18 January 2019 в 22:21
поделиться

1 ответ

Последнее ключевое слово для переменной означает, что значение не может быть изменено. Переменная должна быть установлена ​​один раз, и затем ее нельзя изменить.

Переменная инициализируется либо когда она объявлена:

private final String name = "Rover";

... или в конструкторе, как вы это сделали в своем коде выше.

В приведенном выше примере кода метод setName не будет работать с окончательным именем. Однако вы можете вызвать setAmountOfSpeed, так как amountOfSpeed ​​не является окончательным.

Последнее ключевое слово часто используется для представления констант:

public final float PI = 3.14159;

Вот статья о дополнительном использовании последнего слова.

https://www.geeksforgeeks.org/final-keyword-java/

0
ответ дан HeroSteve 18 January 2019 в 22:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: