Java中的ArrayList与Python中的List

时间:2015-11-29 01:14:21

标签: java python arraylist

为什么Java中的ArrayList是hashable而Python中的List不是。它只是基于开发人员或语言语义的选择。

我认为Python不允许列表是可散列的,因为它是可变的,因此散列可以在对象的生命周期内改变。

这是一个很好的功能或糟糕的功能,为什么Java允许它。

=SUMIF(A:A,D9,B:B)

工作正常而下面没有

public class Test {

    public static void main(String[] args) {


        ArrayList<String> list = new ArrayList<String>();

        list.add("hello");

        System.out.println(list.hashCode());

    }

}

1 个答案:

答案 0 :(得分:3)

你是正确的,因为Python不允许可变数据成为字典的关键字,所以Python中的列表是不可删除的。

Java ArrayLists 可以使用的,因为Java(一个)对不可变性没有任何语言级支持,而且两个强制所有对象都是可清除的。哈希是否有用&#34;取决于班级的实施。

我认为&#34;故事&#34;简单地说,Python对字典有语言级支持,并围绕这个做出了一些设计决策,而Java却没有。

虽然Python是&#34;弱类型&#34; for some definition of "weakly,"你不应该推断Python是编程语言的狂野西部,一切都没有内置的安全性。那将是Perl或Javascript。