1. 程式人生 > >Java集合-Python資料結構比較

Java集合-Python資料結構比較

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資料結構比較

Java list與Python list相比較 Java List:有序的,可重複的。(有序指的是集合中物件的順序與新增順序相同) Python list(列表)是有序的,可變的。 Java List分類:    ---ArrayList:底層使用陣列,執行緒不安全,查詢速度快,增刪速度慢    

JAVA (集合資料結構)

Collection和Collections的區別: 1、java.util.Collection 是一個集合介面。它提供了對集合物件進行基本操作的通用介面方法。Collection介面在Java 類庫中有很多具體的實現。Collection介面的意義是為各種具體的集合提供了最大化的統一操作

java集合資料結構深入解讀

參考部落格 http://www.cnblogs.com/skywang12345/p/3323085.html Java集合在java的世界中是非常重要的一部分,主要集合包括List列表,Set集合,Map對映還有Iterator迭代器、Enumeration列舉

java基礎09-單列集合資料結構比較

主要內容: List 集合 、Set 集合 、資料結構 一、List介面 List介面是Collection介面下面的一個子介面。 1).這個介面滿足以下特點: 1. 有序。(有序不是順序,有序怎麼存就怎麼取) 2. 有索引 (可以根據索引獲取元素) 3.

python資料結構--集合、字典

一、集合set 可變的、無序的、不重複的元素的集合 set的元素要求必須可以hash,set可以迭代,元素不可以索引 定義:s=set()、s=set(iterable) set元素增加: s.add(elem)增加一個元素到set中,如果元素存在,什麼都不做 s.update(*other)合併

python資料結構之列表、字典、元組、集合

列表 列表在python裡是有序集合物件型別。列表裡的物件可以是任何物件:數字,字串,列表或者字典,元組。與字串不同,列表是可變物件,支援原處修改的操作python的列表是: 任意物件的有序集合 通過偏移讀取 可變長度、異構以及任意巢狀 屬於可變序列的分組 物件引用陣列 列表的

python —— 資料結構(字串,元組,列表,字典,集合

Python 識別符號 1、識別符號由字母、數字、下劃線組成。 2、所有識別符號可以包括英文、數字以及下劃線(_),但不能以數字開頭。 3、識別符號是區分大小寫的。 4、以單下劃線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行

Java集合--Iterator和Enumeration比較

table vector str wan rgs map.entry main 今天 fast 轉載請註明出處:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311275 第1部分 It

20172306 2018-2019《Java程式設計與資料結構課堂測試補充報告》

學號 2017-2018-2 《程式設計與資料結構》課堂測試補充報告 課程:《程式設計與資料結構》 班級: 1723 姓名: 劉辰 學號:20172306 實驗教師:王志強 必修/選修: 必修 1.測試內容 三種演算法查詢練習 給定關鍵字序列11,78,10,1,3, 2,4,21

20172306 2018-2019-2 《Java程式設計與資料結構》第七週學習總結

20172306 2018-2019-2 《Java程式設計與資料結構》第七週學習總結 教材學習內容總結 概述 二叉查詢樹是一種含有附加屬性的二叉樹,即其左孩子小於父結點,而父結點又小於或等於右孩子。 二叉查詢樹的定義是二叉樹定義的擴充套件。 二叉查詢樹的各種操作:a

Lesson 026 —— python 資料結構與遍歷

Lesson 026 —— python 資料結構與遍歷 列表 Python中列表是可變的,這是它區別於字串和元組的最重要的特點,一句話概括即:列表可以修改,而字串和元組不能。 以下是 Python 中列表的方法: 方法 描述 lis

python 資料結構 set

建立set tuple算是list和str的雜合,那麼set則可以堪稱是list和dict的雜合. set擁有類似dict的特點:可以用{}花括號來定義;其中的元素沒有序列,也就是是非序列型別的資料;而且,set中的元素不可重複,這就類似dict的鍵. set也有繼承了一點list的

python 資料結構 元組 tuple

tuple使用場景 Tuple 比 list 操作速度快。如果您定義了一個值的常量集,並且唯一要用它做的是不斷地遍歷它,請使用 tuple 代替 list。 如果對不需要修改的資料進行 “防寫”,可以使程式碼更安全。使用 tuple 而不是 list 如同擁有一個隱含的

python 資料結構 字典

字典,名稱就叫做dictionary,翻譯過來是字典,類似於前面的int/str/list,這種型別資料名稱是:dict 實驗: >>>help(dict) 使用dir,也能得到相同的結果。 >>> dir(dict) ['__class

python 資料結構 list(3)

list解析 先看下面的例子,這個例子是想得到1到9的每個整數的平方,並且將結果放在list中打印出來 >>> power2 = [] >>> for i in range(1,10): ... power2.append(i*i) .

python 資料結構與演算法 day02 雙向連結串列

1.實現雙向連結串列 #_+_coding:utf-8_*_ #author: xuanxuan #Time : 2018/11/7 8:48 class Node(): def __init__(self,item): self.item=item

python 資料結構與演算法 day02 單向迴圈連結串列

1. 實現單向迴圈連結串列 class Node(): """定義結點""" def __init__(self,item): self.item=item self.next=None class SingleLoopLinkList(object):

Java---之實現資料結構----佇列

package 資料結構;//java之實現佇列 class quene{ private class Data{ private Object obj; private Data next=null; Data(Object obj){

java之---實現資料結構--棧(基本版)

package 資料結構; /** * java程式碼實現棧 */ class stack { private class Data { private Object obj; private Data next = null; Da

Python-資料結構與演算法(十一、字典(對映)——基於兩種不同的底層實現)

保證一週更兩篇吧,以此來督促自己好好的學習!程式碼的很多地方我都給予了詳細的解釋,幫助理解。好了,幹就完了~加油! 宣告:本python資料結構與演算法是imooc上liuyubobobo老師java資料結構的python改寫,並添加了一些自己的理解和新的東西,liuyubobobo