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()
更新 谈不上更新 谈不上更新

Java集合-Python数据结构比较的更多相关文章

  1. 给jdk写注释系列之jdk1.6容器(13)-总结篇之Java集合与数据结构

         是的,这篇blogs是一个总结篇,最开始的时候我提到过,对于java容器或集合的学习也可以看做是对数据结构的学习与应用.在前面我们分析了很多的java容器,也接触了好多种常用的数据结构,今天 ...

  2. JAVA (集合和数据结构)

    Collection和Collections的区别: 1.java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java 类 ...

  3. java与python数据结构对比

  4. java中的数据结构(集合|容器)

    对java中的数据结构做一个小小的个人总结,虽然还没有到研究透彻jdk源码的地步.首先.java中为何需要集合的出现?什么需求导致.我想对于面向对象来说,对象适用于描述任何事物,所以为了方便对于对象的 ...

  5. Java学习笔记——浅谈数据结构与Java集合框架(第一篇、List)

    横看成岭侧成峰,远近高低各不同.不识庐山真面目,只缘身在此山中. --苏轼 这一块儿学的是云里雾里,咱们先从简单的入手.逐渐的拨开迷雾见太阳.本次先做List集合的三个实现类的学习笔记 List特点: ...

  6. Python数据结构之四——set(集合)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...

  7. Java的数组,集合,数据结构,算法(一)

    本人的愚见,博客是自己积累对外的输出,在学习初期或自己没有多少底料的情况下,与其总结写博客不如默默去搞自己的代码,但是学到集合这一块时,数组,集合,数据结构,算法这个概念搞的我比较混淆,所以不得已写这 ...

  8. Java 集合框架(常用数据结构)

    早在Java 2中之前,Java就提供了特设类.比如:向量(Vector).栈(Stack).字典(Dictionary).哈希表(Hashtable)这些类(数据结构)用来存储和操作对象组.虽然这些 ...

  9. 一起学 Java集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

随机推荐

  1. nginx服务器安装及配置文件详解

    nginx在工作中已经有好几个环境在使用了,每次都是重新去网上扒博客,各种编译配置,今天自己也整理一份安装文档和nginx.conf配置选项的说明,留作以后参考.像负载均衡配置(包括健康检查).缓存( ...

  2. document.compatMode

    在我电脑屏幕上显示的 电脑是 1920*1080这是在document.compatMode:css1Compat模式 window.screen.availWidth 1920 window.scr ...

  3. 敏捷转型历程 - Sprint3 回顾会

    我: Tech Leader 团队:团队成员分布在两个城市,我所在的城市包括我有4个成员,另外一个城市包括SM有7个成员.另外由于我们的BA离职了,我暂代IT 的PO 职位.PM和我在一个城市,但他不 ...

  4. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  5. 绿色版的Linux.NET——“Jws.Mono”

    Linux.NET环境的搭建,不仅是一项比较耗时的事情,同时也是一项略显复杂繁琐的事情.特别是对于近期的几个Mono版本,由于官方所提供的源码包中出现代码文件的缺失,这总让我们的付出变得徒劳.另外一方 ...

  6. 页面与ViewModel(上)

    在UWP淘宝与旺信中,笔者主要负责页面与控件的制作,这些工作看似简单,但要想做的全面细致仍然需要深入的思考.本文想分享一些在UWP旺信的制作过程中,笔者在UI页面与控件制作上体会到的一些心得.可能笔者 ...

  7. WPF自定义控件第二 - 转盘按钮控件

    继之前那个控件,又做了一个原理差不多的控件.这个控件主要模仿百度贴吧WP版帖子浏览界面左下角那个弹出的按钮盘.希望对大家有帮助. 这个控件和之前的也差不多,为了不让大家白看,文章最后发干货. 由于这个 ...

  8. 架构之路(八)从CurrentUser说起

    CurrentUser,也就是当前用户,这是我们系统中大量使用的一个概念. 确认当前用户 当然,我们利用的是cookie:用户的ID存放在cookie中,服务器端通过cookie中的Id,查找数据库, ...

  9. Java 8函数编程轻松入门(三)默认方法详解(default function)

    default出现的原因 Java 8中对API最大的改变在于集合类,Java在持续演进,但是它一直保持着向后兼容. 在Java 8中为Collection接口增加了stream方法,这意味着所有实现 ...

  10. hibernate多对一单向关联

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...