为什么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());
}
}
答案 0 :(得分:3)
你是正确的,因为Python不允许可变数据成为字典的关键字,所以Python中的列表是不可删除的。
Java ArrayLists 是可以使用的,因为Java(一个)对不可变性没有任何语言级支持,而且两个强制所有对象都是可清除的。哈希是否有用&#34;取决于班级的实施。
我认为&#34;故事&#34;简单地说,Python对字典有语言级支持,并围绕这个做出了一些设计决策,而Java却没有。
虽然Python是&#34;弱类型&#34; for some definition of "weakly,"你不应该推断Python是编程语言的狂野西部,一切都没有内置的安全性。那将是Perl或Javascript。