日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 十亿数据量运行速度慢_Java学习进阶之数据结构知识梳理

發布時間:2024/1/23 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 十亿数据量运行速度慢_Java学习进阶之数据结构知识梳理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java是一門面向對象編程語言,具有功能強大和簡單易用兩大屬性。Java工具包提供了強大的數據結構,包括枚舉、位集合、向量、棧、字典、哈希表、屬性等接口類。拉勾IT課小編為大家分析,java的每一個細節點。

Java中有幾種常用的數據結構,主要分為Collection和map兩個主要接口(接口只提供方法,并不提供實現),程序中最終使用的數據結構是繼承自這些接口的數據結構類。

ArrayList、LinkedList、Vector有什么區別?

ArrayList

1)只能裝入引用對象(基本類型要轉換為封裝類);

2)線程不安全;

3)底層由數組實現(順序表),因為由順序表實現,所以會具備順序表的特點,如:需要聲明長度、超出長度時需要進行擴容、不適合頻繁的移動刪除元素、檢索元素快;

4)capacity默認為10,超出時,capacity自動增長0.5倍(oldCapacity >> 1)。

Vector:

1)只能裝入引用對象(基本類型要轉換為封裝類);

2)Vector通過synchronized方法保證線程安全;

3)底層也由數組實現;

4)capacity默認為10(在構造方法中),超出時增長capacityIncrement的量,capacityIncrement小于等于0時,則增長1倍((capacityIncrement > 0) ? capacityIncrement : oldCapacity)。

LinkedList

1)只能裝入引用對象(基本類型會轉換為封裝類);

2)線程不安全;

3)底層實現為鏈表,具備鏈表的特點,如:不用聲明長度、檢索性能較差,但是插入移動刪除較快。

4)鏈表通過Node對象實現。

鏈表與數組的區別

數組在使用之前必須定義大小,而且不能動態定義大小,會造成給數組分配了太多的單元而浪費了寶貴的資源,糟糕的一面是,程序運行時需要處理的數據可能多于數組的單元。

當需要動態的減少或增加數據項時,可以使用鏈表這種數據結構。

為什么使用散列表?

對于數組和鏈表這兩種數據結構,如果要查找它們存儲的某個特定元素卻不知道它的位置,就需要從頭開始訪問元素直到找到匹配的為止;如果數據結構中包含很多的元素,就會浪費時間。這時最好使用散列表來存儲要查找的數據。

List接口主要實現類包括:

ArrayList():代表長度可以改變得數組。可以對元素進行隨機的訪問,向ArrayList()中插入與刪除元素的速度慢。

LinkedList():在實現中采用鏈表數據結構。插入和刪除速度快,訪問速度慢。

對于List的隨機訪問來說,就是只隨機來檢索位于特定位置的元素。List的get(int index)方法放回集合中由參數index指定的索引位置的對象,下標從“0” 開始。最基本的兩種檢索集合中的所有對象的方法。

使用HashSet判斷主鍵是否存在

HashSet實現Set接口,由哈希表(實際上是HashMap)實現,但不保證set的迭代順序,并允許使用null元素。HashSet的時間復雜度跟HashMap一致,如果沒有哈希沖突則時間復雜度為O(1),如果存在哈希沖突則時間復雜度不超過O(n)。所以,在日常編碼中,可以使用HashSet判斷主鍵是否存在。

借助靈活的在線學習,不斷提升java在數據表的應用,遇到了難點,及時學習,數據結構的掌握不是簡單地學習,要在學習環節中不斷掌握,每一個數據結構的知識點,提升對數據應用

總結

以上是生活随笔為你收集整理的java 十亿数据量运行速度慢_Java学习进阶之数据结构知识梳理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。