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