• Java集合-Python数据结构比较


    转自:https://www.cnblogs.com/kingofkai/p/5901494.html

    作者:欲戴王冠.必承其重

    Java list与Python list相比较

    Java List:有序的,可重复的。(有序指的是集合中对象的顺序与添加顺序相同)

    Python list(列表)是有序的,可变的。

    Java List分类:

       ---ArrayList:底层使用数组,线程不安全,查找速度快,增删速度慢

                          在迭代过程中,对集合对象的增删会出现异常

       ---LinkedList:底层使用链表,线程不安全,查找速度慢,增删速度快

                          后进先出,类似于栈

       ---Vector:     底层使用数组,线程安全,查找速度快,增删速度慢,被ArrayList替代

    Python 列表无分类,list是Python的基本数据结构。

    方法 Java List Python list:[1,'2',3]    Python tuple:(1,2,3)
    增加到末尾 boolean add(E e); list.append('大帝') 不可变
    增加到指定位置 void add(int index, E element); list.insert(2,'大帝') 不可变
    长度 int size(); len(list) 与list相同
    更新 E set(int index, E element); list[i]='大帝' 不可变
    删除 E remove(int index); list.pop(i) 不可变
    删除所有 void clear(); list.clear() 不可变,可以使用del删除元组
    查找 E get(int index); list[i] 与list相同

    Java Map与Python dict相比较

    Java Map属于集合,但不属于Collection体系中一部分,无序的,不可重复,以键值对形式存在。

    Python dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度,dict的key必须是不可变对象,因为dict根据key使用哈希算法来计算value的存储位置

    Java Map分类:

    --- HashMap:底层使用的数据结构是哈希表

                保持键的唯一性同HashSet相同。

    --- TreeMap:底层使用的数据结构是二叉树     

                保持键的唯一性同TreeSet相同。

    Python 字典无分类,dict是Python的基本数据结构。

    方法 Java Map Python dict:{'1':'1','2':'2'}
    增加 V put(K key, V value); dict['1']='大帝'
    删除 V remove(Object key); del dict['1']
    更改 和增加相同,若键相同,会覆盖原值 dict['1']='国王'
    查找 V get(Object key); dict['1']

    Java Set与Python set相比较

    Java Set底层使用的就是Java Map的键,值被设置为空,因此Set与Map保持唯一性的原理是相同的。

    Python set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    Java Set:无序,不可重复

       ---HashSet:底层使用哈希表,线程不安全

                       保证对象唯一的方式:重写hashcode(),equals(Object obj).使用哈希算法导致无序

       ---TreeSet:底层使用二叉树,线程不安全

                       在使用add方法添加对象时,会对加入集合的对象进行排序

                       保证对象唯一的方式:1 实现Comparable<E>接口,实现compareTo()方法的返回值是0,则不能加入。2 创建一个类,实现Comparator<T>,实现compare()                    方法。

    Python 集合无分类,set是Python的基本数据结构。

    方法 Java Set Python set
    创建   传入一个list:set([1,2,3])或者直接s={1,2,3}
    增加 boolean add(E e); s.add(4)
    删除 boolean remove(Object o); s.remove(4)/s.pop()
    更新 谈不上更新 谈不上更新
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    window下eclipse4.5+hadoop2.6.1开发环境配置
    sqoop1.4.6从mysql导入hdfshivehbase实例
    sqoop1.9.7安装和使用
    sqoop1.4.6导出oracle实例
    sqoop1.4.6配置安装
    java 操作hbase1.2
    hbase-1.2.5完全分布式部署
    hadoop2.6环境中部署hive1.2.2的错误
    hive 创建表和导入数据实例
    hive1.2.2部署
  • 原文地址:https://www.cnblogs.com/nemowang1996/p/10522761.html
Copyright © 2020-2023  润新知