首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayList中的ArrayList

ArrayList中的ArrayList
EN

Stack Overflow用户
提问于 2015-11-29 01:14:20
回答 1查看 7.1K关注 0票数 4

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

我认为Python不允许list是可选的,因为它是可变的,因此哈希可以在对象的生存期内改变。

这是一个好的或坏的特性,为什么Java允许它。

代码语言:javascript
复制
public class Test {

    public static void main(String[] args) {


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

        list.add("hello");

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

    }

}

在下面不工作的时候工作很好

代码语言:javascript
复制
>>> l = ["hello"]
>>> l.__hash__()

Traceback (most recent call last):
  File "<pyshell#103>", line 1, in <module>
    l.__hash__()
TypeError: 'NoneType' object is not callable
EN

回答 1

Stack Overflow用户

发布于 2015-11-29 01:17:50

Python中的列表是不可理解的,因为Python不允许可变数据作为字典的键,这一点是正确的。

Java ArrayLists是可理解的,因为Java没有任何语言级对不可变性的支持,并且两个强制所有对象都是可访问的。散列是否“有用”取决于类的实现。

我认为“故事”很简单,Python对字典有语言级别的支持,并对此做出了一些设计决策,而Java则没有。

虽然Python是“弱类型的”关于“弱,”的定义,但是您不应该推断Python是编程语言的狂野西部,所有的东西都没有内置的安全性。这将是Perl或Javascript。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33978318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档