最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java的列表、集合、數(shù)組的添加一個元素各自用什么方法詳解

 更新時間:2025年07月30日 09:49:55   作者:Elon?Musk@real  
這篇文章主要介紹了Java的列表、集合、數(shù)組的添加一個元素各自用什么方法的相關資料,文中通過代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考借鑒價值,需要的朋友可以參考下

在Java中,列表(List)、集合(Set)和數(shù)組(Array)添加元素的方法有所不同,以下是具體說明及示例:

add() 添加元素

一、列表(List)

常用實現(xiàn)類包括ArrayListLinkedList,核心方法為add()

  1. 末尾添加
    add(Object o)

    List<String> list = new ArrayList<>();
    list.add("Java");  // 添加元素到末尾
    
  2. 指定位置插入
    add(int index, Object o)

    list.add(1, "Python");  // 在索引1處插入元素,原元素后移
    
  3. 批量添加
    addAll(Collection<?> c)Collections.addAll()

    List<String> list2 = Arrays.asList("C++", "Go");
    list.addAll(list2);  // 批量添加集合元素
    

二、集合(Set)

常用實現(xiàn)類如HashSet、TreeSet,添加元素需滿足唯一性

  1. 基本添加
    add(Object o)

    Set<String> set = new HashSet<>();
    set.add("Apple");  // 成功返回true,重復元素返回false
    
  2. 有序集合的添加
    TreeSet會自動按自然順序排序:

    Set<Integer> sortedSet = new TreeSet<>();
    sortedSet.add(3);
    sortedSet.add(1);  // 最終順序為1, 3
    

對比總結(jié)

數(shù)據(jù)結(jié)構(gòu)添加方法特點
數(shù)組Arrays.copyOf()或轉(zhuǎn)ArrayList固定長度,需手動擴容或轉(zhuǎn)換容器
列表(List)add()、addAll()支持動態(tài)擴容和指定位置插入
集合(Set)add()元素唯一,自動去重,無序(TreeSet有序)

示例完整代碼

數(shù)組轉(zhuǎn)列表并添加元素:

int[] arr = {1, 2, 3};
List<Integer> list = new ArrayList<>(Arrays.asList(arr));
list.add(4);
list.add(1, 99);  // 插入到索引1處
System.out.println(list);  // 輸出[1, 99, 2, 3, 4]

集合去重示例:

Set<String> cities = new HashSet<>();
cities.add("Beijing");
cities.add("Shanghai");
cities.add("Beijing");  // 重復元素不會被添加
System.out.println(cities);  // 輸出[Beijing, Shanghai]

如需動態(tài)處理大量元素,推薦優(yōu)先使用ArrayList(列表)或HashSet(集合)。

三、樹形結(jié)構(gòu)(Tree)

Java 標準庫未直接提供樹結(jié)構(gòu),但可通過 TreeSetTreeMap 間接實現(xiàn)有序存儲:

TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(5);  // 自動按升序排列
treeSet.add(3);  // 內(nèi)部順序變?yōu)?, 5

四、隊列(Queue)

隊列遵循 先進先出(FIFO) 原則,常用實現(xiàn)類為 LinkedListPriorityQueue

  1. 普通隊列
    使用 add()offer() 方法在隊尾添加元素:

    Queue<Integer> queue = new LinkedList<>();
    queue.add(10);  // 添加元素,隊列滿時拋異常
    queue.offer(20); // 添加元素,隊列滿時返回false
    
  2. 優(yōu)先級隊列
    PriorityQueue 根據(jù)元素自然順序或自定義比較器排序:

    Queue<Integer> pq = new PriorityQueue<>();
    pq.add(5);  // 添加元素并自動排序
    pq.add(1);  // 內(nèi)部順序變?yōu)?, 5
    

五、鏈表(LinkedList)

LinkedList 同時實現(xiàn)了 ListDeque,支持靈活插入:

  1. 任意位置插入
    使用 add(int index, E element)
    LinkedList<String> linkedList = new LinkedList<>();
    linkedList.add(0, "First");  // 在索引0處插入
    linkedList.add(1, "Second");
    

六、向量(Vector)

向量是線程安全的動態(tài)數(shù)組,使用 addElement()add() 添加:

Vector<Integer> vector = new Vector<>();
vector.addElement(100);  // 傳統(tǒng)方法
vector.add(200);         // 與ArrayList兼容

其他數(shù)據(jù)結(jié)構(gòu)的添加方法

Java 中除了列表(List)、集合(Set)和數(shù)組(Array)之外,還有其他多種數(shù)據(jù)結(jié)構(gòu)支持元素的添加操作。以下是其他常見數(shù)據(jù)結(jié)構(gòu)及其添加元素的示例和方法:

雙端隊列(Deque)

雙端隊列支持從兩端添加元素,實現(xiàn)類為 ArrayDeque。

  1. 頭部/尾部添加
    使用 addFirst()addLast()
    Deque<String> deque = new ArrayDeque<>();
    deque.addFirst("Front");  // 頭部添加
    deque.addLast("End");     // 尾部添加
    

put()-映射(Map)

映射存儲鍵值對,常用實現(xiàn)類為 HashMapTreeMap。

  1. 添加鍵值對
    使用 put() 方法:
    Map<String, Integer> map = new HashMap<>();
    map.put("Apple", 10);  // 鍵不存在時新增
    map.put("Banana", 20);
    

push() -棧(Stack)

棧遵循 后進先出(LIFO) 原則,實現(xiàn)類為 Stack(已過時)或 Deque 模擬。

  1. 使用 Deque 模擬棧
    Deque<Integer> stack = new ArrayDeque<>();
    stack.push(1);  // 壓棧
    stack.push(2);  // 棧頂元素變?yōu)?
    

數(shù)組(Array)

數(shù)組是固定長度的數(shù)據(jù)結(jié)構(gòu),添加元素通常需要創(chuàng)建新數(shù)組使用動態(tài)容器

  1. 直接賦值
    通過索引直接賦值,但需確保索引有效且數(shù)組已初始化:

    int[] arr = new int[3];
    arr[0] = 1;  // 直接賦值到索引0的位置
    
  2. 擴容后添加
    使用Arrays.copyOf()創(chuàng)建新數(shù)組并添加元素:

    int[] arr = {1, 2, 3};
    arr = Arrays.copyOf(arr, arr.length + 1);  // 擴容
    arr[arr.length - 1] = 4;  // 添加新元素
    
  3. 轉(zhuǎn)換為ArrayList動態(tài)添加
    將數(shù)組轉(zhuǎn)為ArrayList,利用其add()方法:

    String[] arr = {"a", "b"};
    List<String> list = new ArrayList<>(Arrays.asList(arr));
    list.add("c");  // 添加新元素
    arr = list.toArray(new String[0]);  // 轉(zhuǎn)回數(shù)組
    

總結(jié)

數(shù)據(jù)結(jié)構(gòu)添加方法示例類適用場景
隊列(Queue)add(), offer()LinkedList任務調(diào)度、廣度優(yōu)先搜索
雙端隊列(Deque)addFirst(), addLast()ArrayDeque需要兩端操作的場景
映射(Map)put()HashMap鍵值對存儲、快速查找
棧(Stack)push()ArrayDeque函數(shù)調(diào)用棧、表達式求值
鏈表(LinkedList)add(index, element)LinkedList頻繁插入/刪除、中間操作
向量(Vector)addElement()Vector線程安全的動態(tài)數(shù)組需求

擴展說明

  • 堆(Heap):Java 中通過 PriorityQueue 實現(xiàn)堆結(jié)構(gòu),添加元素會自動調(diào)整堆結(jié)構(gòu)。
  • 并發(fā)集合:如 ConcurrentHashMapCopyOnWriteArrayList,適用于多線程環(huán)境,但添加方法類似普通集合。

如果需要更具體的實現(xiàn)細節(jié)或線程安全方案,可進一步查看相關類的官方文檔或源碼實現(xiàn)。

到此這篇關于Java的列表、集合、數(shù)組的添加一個元素各自用什么方法的文章就介紹到這了,更多相關Java列表、集合、數(shù)組添加元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java Date與String的相互轉(zhuǎn)換詳解

    Java Date與String的相互轉(zhuǎn)換詳解

    這篇文章主要介紹了Java Date與String的相互轉(zhuǎn)換詳解的相關資料,需要的朋友可以參考下
    2017-02-02
  • 解決JDK9以上的非法反射訪問警告的問題

    解決JDK9以上的非法反射訪問警告的問題

    文章介紹了在JDK9及以上版本中,由于模塊系統(tǒng)限制,舊版庫(如protostuff)會出現(xiàn)非法反射訪問的警告,解決方法是使用--illegal-access參數(shù),并通過--add-opens參數(shù)允許特定模塊的非法反射訪問,文章還提供了在IDEA和構(gòu)建工具(Maven和Gradle)中配置這些參數(shù)的示例
    2025-11-11
  • Java集合遍歷全指南(迭代器&增強for及列表迭代器)

    Java集合遍歷全指南(迭代器&增強for及列表迭代器)

    本文詳盡介紹了Java集合遍歷的5種方式:迭代器、增強for、列表迭代器、普通for及Lambda表達式,通過代碼示例和原理解析,幫助讀者徹底掌握集合遍歷的核心知識,避免常見錯誤如并發(fā)修改異常和指針復位問題,適合Java初學者及面試復習,需要的朋友可以參考下
    2026-02-02
  • Spring Boot整合MyBatis-Flex全過程

    Spring Boot整合MyBatis-Flex全過程

    這篇文章主要介紹了Spring Boot整合MyBatis-Flex全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 微信小程序 navigator 跳轉(zhuǎn)url傳遞參數(shù)

    微信小程序 navigator 跳轉(zhuǎn)url傳遞參數(shù)

    這篇文章主要介紹了 微信小程序 navigator 跳轉(zhuǎn)url傳遞參數(shù)的相關資料,需要的朋友可以參考下
    2017-03-03
  • RocketMQ中的NameServer詳細解析

    RocketMQ中的NameServer詳細解析

    這篇文章主要介紹了RocketMQ中的NameServer詳細解析,NameServer是一個非常簡單的Topic路由注冊中心,支持Broker的動態(tài)注冊與發(fā)現(xiàn),因此不能保證NameServer的一致性,需要的朋友可以參考下
    2024-01-01
  • Java國密加密SM2代碼詳細使用步驟

    Java國密加密SM2代碼詳細使用步驟

    SM2算法可以用較少的計算能力提供比RSA算法更高的安全強度,而所需的密鑰長度卻遠比RSA算法低,下面這篇文章主要給大家介紹了關于Java國密加密SM2代碼的相關資料,需要的朋友可以參考下
    2024-07-07
  • mybatis使用@mapkey獲取的結(jié)果的鍵(key)為null問題

    mybatis使用@mapkey獲取的結(jié)果的鍵(key)為null問題

    這篇文章主要介紹了mybatis使用@mapkey獲取的結(jié)果的鍵(key)為null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 詳解Java程序啟動時-D指定參數(shù)是什么

    詳解Java程序啟動時-D指定參數(shù)是什么

    java服務啟動的時候,都會指定一些參數(shù),下面這篇文章主要給大家介紹了關于Java程序啟動時-D指定參數(shù)是什么的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • mybatis中oracle實現(xiàn)分頁效果實例代碼

    mybatis中oracle實現(xiàn)分頁效果實例代碼

    實現(xiàn)分頁的方式有很多,但常用的是通過SQL來顯示分頁。這篇文章主要介紹了mybatis中oracle實現(xiàn)分頁效果實例代碼,有興趣的可以了解一下。
    2017-04-04

最新評論

铜山县| 台中市| 正蓝旗| 都匀市| 濮阳市| 吴堡县| 乌兰浩特市| 宿州市| 莒南县| 鞍山市| 潢川县| 内黄县| 德化县| 平安县| 大新县| 会昌县| 赤城县| 重庆市| 红原县| 宁乡县| 苗栗市| 南部县| 桐梓县| 桑植县| 公安县| 桂阳县| 汨罗市| 兴城市| 台南县| 武强县| 杂多县| 常宁市| 子洲县| 宾阳县| 苍南县| 双城市| 乌兰县| 韶关市| 南乐县| 桐城市| 昆明市|