欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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
    

對比總結

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

示例完整代碼

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

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(集合)。

三、樹形結構(Tree)

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

TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(5);  // 自動按升序排列
treeSet.add(3);  // 內部順序變?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);  // 內部順序變?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ù)結構的添加方法

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

雙端隊列(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ù)結構,添加元素通常需要創(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. 轉換為ArrayList動態(tài)添加
    將數(shù)組轉為ArrayList,利用其add()方法:

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

總結

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

擴展說明

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

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

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

相關文章

  • 微服務領域Spring Boot自動伸縮的實現(xiàn)方法

    微服務領域Spring Boot自動伸縮的實現(xiàn)方法

    這篇文章主要給大家介紹了關于微服務領域Spring Boot自動伸縮的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10
  • java Map轉Object與Object轉Map實現(xiàn)代碼

    java Map轉Object與Object轉Map實現(xiàn)代碼

    這篇文章主要介紹了 java Map轉Object與Object轉Map實現(xiàn)代碼的相關資料,需要的朋友可以參考下
    2017-02-02
  • java中@JSONField和@JsonProperty注解的使用說明及對比

    java中@JSONField和@JsonProperty注解的使用說明及對比

    @JSONField與@JsonProperty隸屬兩個不同的包,前者是阿里系的fastjson包,后者是spring?boot官方使用的jackson包,本文主要介紹了java中@JSONField和@JsonProperty注解的使用說明及對比,感興趣的可以了解一下
    2023-11-11
  • spring在service層的方法報錯事務不會回滾的解決

    spring在service層的方法報錯事務不會回滾的解決

    這篇文章主要介紹了spring在service層的方法報錯事務不會回滾的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • spring gateway如何解決跨域問題

    spring gateway如何解決跨域問題

    這篇文章主要介紹了spring gateway如何解決跨域問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • java枚舉的使用示例

    java枚舉的使用示例

    我們在學習編程語言的時候都學過枚舉,現(xiàn)在就具體來看看java中的枚舉的使用
    2013-12-12
  • SpringCloud 中使用 Ribbon的方法詳解

    SpringCloud 中使用 Ribbon的方法詳解

    本文重點給大家介紹SpringCloud 中使用 Ribbon的方法,本文通過實例文字相結合的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2018-10-10
  • 解決MyBatisPlus的updateBatchById()批量修改失效問題

    解決MyBatisPlus的updateBatchById()批量修改失效問題

    這篇文章主要介紹了解決MyBatisPlus的updateBatchById()批量修改失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java中File與byte[]的互轉方式

    Java中File與byte[]的互轉方式

    這篇文章主要介紹了Java中File與byte[]的互轉方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 如何解決IDEA.properties文件中文亂碼問題

    如何解決IDEA.properties文件中文亂碼問題

    這篇文章主要介紹了如何解決IDEA.properties文件中文亂碼問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論