Java中List接口中方法的使用(初學者指南)

Java中List接口中方法的使用(初學者指南)

在Java中,List接口是Collection接口的子接口,它表示一個有序的集合,其中的元素都可以重復。List接口提供了許多額外的方法,用于對元素進行插入、刪除、查詢等操作。以下是對List接口中一些常用方法的簡單介紹,并配以代碼示例和注釋。

1. 添加元素
  • boolean add(E e): 在列表的末尾添加一個元素。
  • void add(int index, E element): 在列表的指定位置插入一個元素。
import java.util.ArrayList;
import java.util.List;public class ListExample {public static void main(String[] args) {List<String> list = new ArrayList<>();// 在列表末尾添加元素list.add("Apple");list.add("Banana");// 在指定位置插入元素list.add(1, "Cherry"); // 在索引1的位置插入"Cherry"// 打印列表內容System.out.println(list); // 輸出: [Apple, Cherry, Banana]}
}
2. 訪問元素
  • E get(int index): 返回列表中指定位置的元素。
// 繼續使用上面的示例
public class ListExample {// ...public static void main(String[] args) {// ...// 訪問索引為1的元素(即"Cherry")String fruit = list.get(1);System.out.println("Fruit at index 1: " + fruit); // 輸出: Fruit at index 1: Cherry}
}
3. 修改元素

List接口本身并沒有直接提供修改元素的方法,但你可以通過索引訪問元素并使用賦值操作來修改它。

// 繼續使用上面的示例
public class ListExample {// ...public static void main(String[] args) {// ...// 修改索引為1的元素為"Grape"list.set(1, "Grape");// 打印列表內容System.out.println(list); // 輸出: [Apple, Grape, Banana]}
}
4. 移除元素
  • E remove(int index): 移除列表中指定位置的元素,并返回該元素。
  • boolean remove(Object o): 移除列表中首次出現的指定元素(如果存在的話)。
// 繼續使用上面的示例
public class ListExample {// ...public static void main(String[] args) {// ...// 移除索引為0的元素(即"Apple")list.remove(0);// 移除元素"Banana"list.remove("Banana");// 打印列表內容System.out.println(list); // 輸出: [Grape](假設"Banana"之前已經被移除)}
}
5. 查找元素索引
  • int indexOf(Object o): 返回指定元素在列表中首次出現的索引,如果列表不包含該元素,則返回-1。
  • int lastIndexOf(Object o): 返回指定元素在列表中最后一次出現的索引,如果列表不包含該元素,則返回-1。
// 假設我們再次添加了"Banana"到列表中
list.add("Banana");// 查找"Grape"的索引
int index = list.indexOf("Grape");
System.out.println("Index of Grape: " + index); // 輸出: Index of Grape: 0// 查找"Banana"的索引
int lastIndex = list.lastIndexOf("Banana");
System.out.println("Last Index of Banana: " + lastIndex); // 輸出: Last Index of Banana: 1(假設"Banana"在末尾)
6. 列表大小與是否為空
  • int size(): 返回列表中的元素數量。
  • boolean isEmpty(): 如果列表不包含任何元素,則返回true
// 繼續使用上面的示例
public class ListExample {// ...public static void main(String[] args) {// ...// 打印列表大小System.out.println("Size of list: " + list.size()); // 輸出: Size of list: 2(假設列表中有"Grape"和"Banana")// 檢查列表是否為空System.out.println("Is list empty? " + list.isEmpty()); // 輸出: Is list empty? false(因為列表不為空)}
}#### 7. 遍歷列表遍歷列表的常用方法有使用`for`循環、`for-each`循環(也稱為增強型`for`循環)或者`Iterator`。```java
// 使用for-each循環遍歷列表
for (String fruit : list) {System.out.println(fruit); // 輸出列表中的每個元素
}// 使用for循環和get方法遍歷列表
for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i)); // 同樣輸出列表中的每個元素
}// 使用Iterator遍歷列表
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit); // 輸出列表中的每個元素
}
8. 子列表

List接口還提供了獲取子列表的方法。

// 假設我們有一個包含多個元素的列表
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
fruits.add("Date");// 獲取索引1(包含)到索引3(不包含)的子列表
List<String> subList = fruits.subList(1, 3);
System.out.println(subList); // 輸出: [Banana, Cherry]

注意:對子列表的修改會反映到原列表中,并且必須小心不要以會導致索引越界的方式修改原列表的大小,因為這可能會引發ConcurrentModificationException

總結

以上就是對Java中List接口中一些常用方法的簡單介紹和代碼示例。這些方法是操作列表時非常基礎和常用的,理解它們對于掌握Java集合框架的使用至關重要。當然,List接口的實現類(如ArrayListLinkedList等)還提供了更多高級功能,但初學者可以從這些基礎方法開始,逐步深入學習和掌握。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11692.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機Java項目|Springboot學生讀書筆記共享

作者主頁&#xff1a;編程指南針 作者簡介&#xff1a;Java領域優質創作者、CSDN博客專家 、CSDN內容合伙人、掘金特邀作者、阿里云博客專家、51CTO特邀作者、多年架構師設計經驗、騰訊課堂常駐講師 主要內容&#xff1a;Java項目、Python項目、前端項目、人工智能與大數據、簡…

C++通過json文件配置參數

一、安裝nlohmann json nlohmann json&#xff1a;安裝_nlohmann安裝-CSDN博客 依次執行下面指令&#xff1a; git clone https://gitee.com/cuihongxi/mov_from_github.gitcd json-developmkdir buildcd buildcmake ..makesudo make install 二、安裝完成后使用 #include…

華為設備display查看命令

display version //查看版本信息 display current-configuration //查看配置詳情 display this //查看當前視圖有效配置 display ip routing-table //查看路由表 display ip routing-table 192.168.3.1 //查看去往3.1的路由 display ip interface brief //查看接口下ip信息 dis…

想跨境出海?云手機提供了一種可能性

全球化時代&#xff0c;越來越多的中國電商開始將目光投向了海外市場。這并不是偶然&#xff0c;而是他們在長期的市場運營中&#xff0c;看到了出海的必要性和潛在的機會。 中國的電商市場無疑是全球最大也最發達的之一。然而&#xff0c;隨著市場的不斷發展和競爭的日益加劇…

visual studio2022 JNI極簡開發流程

文章目錄 1 創建java類2 生成JNI頭文件3 使用visual studio2022創建DLL項目3.1 選擇模板中&#xff08;Windows桌面向導&#xff09;3.2 為項目命名3.3 選擇應用程序類型為動態鏈接庫3.4 項目概覽 4 導入需要的頭文件4.1 導入需要的頭文件4.2 修改頭文件 5 編寫C實現6 生成dll文…

服務器3389端口,服務器3389端口風險提示的應對措施

3389端口是Windows操作系統中遠程桌面協議&#xff08;RDP&#xff09;的默認端口。一旦該端口被惡意攻擊者利用&#xff0c;可能會導致未經授權的遠程訪問和數據泄露等嚴重安全問題。 針對此風險&#xff0c;強烈建議您采取以下措施&#xff1a; 1. 修改默認端口&#xff1a;…

Java面試之抽象類和接口

Java的一個重要特性就是抽象&#xff0c;抽象是指將具體的事物抽象成更一般化、更抽象化的概念或模型。在Java中&#xff0c;抽象可以通過抽象類和接口來實現&#xff0c;它們讓你能夠定義一些方法但不提供具體實現&#xff0c;從而讓子類去實現具體細節。 一、抽象類&#xf…

springboot3 集成spring-authorization-server (一 基礎篇)

官方文檔 Spring Authorization Server 環境介紹 java&#xff1a;17 SpringBoot&#xff1a;3.2.0 SpringCloud&#xff1a;2023.0.0 引入maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

識別AI論文生成內容,降低論文高AI率

AI寫作工具能幫我們在短時間內高效生成一篇畢業論文、開通報告、文獻綜述、任務書、調研報告、期刊論文、課程論文等等&#xff0c;導致許多人開始使用AI寫作工具作為撰寫學術論文的輔助手段。而學術界為了杜絕此行為&#xff0c;開始使用AIGC檢測系統來判斷文章是由AI生成還是…

解鎖商業AI,賦能新質生產力發展——思愛普中國峰會探展全紀錄

ITValue 鈦媒體獨家探秘思愛普中國峰會&#xff0c;帶你深刻感受SAP助力企業利用以商業AI為代表的數字化技術&#xff0c;實現質的飛躍&#xff0c;通過全數據、全球化、全綠色賦能新型中國企業發展新質生產力。 首發&#xff5c;鈦媒體APP ITValue 5月10日&#xff0c;一年一度…

基于NTP服務器獲取網絡時間的實現

文章目錄 1 NTP1.1 簡介1.2 包結構1.3 UNIX 時間戳和NTP時間戳 2 代碼實現2.1 實現步驟2.2 完整代碼 3 結果 在某些場景下&#xff0c;單片機需要通過網絡獲取準確的時間進行數據同步&#xff0c;例如日志記錄、定時任務等。然而&#xff0c;單片機本身無法直接獲得準確的標準時…

Vue的學習 —— <vue指令>

目錄 前言 正文 內容渲染指令 內容渲染指令的使用方法 v-text v-html 屬性綁定指令 雙向數據綁定指令 事件綁定指令 條件渲染指令 循環列表渲染指令 偵聽器 前言 在完成Vue開發環境的搭建后&#xff0c;若想將Vue應用于實際項目&#xff0c;首要任務是學習Vue的基…

ORA-00932: inconsistent datatypes: expected - got CLOB的分析解決方案

最近在項目中遇到查詢數據時報ORA-00932: inconsistent datatypes: expected - got CLOB錯誤&#xff0c;這個錯誤很明顯是由于查詢時類型的不匹配造成的。 問題分析&#xff1a; 一、檢查你的查詢的實體的類型是否于數據庫的保持一致&#xff0c;如果不一致&#xff0c;那么需…

333_C++_編寫一個go函數每次從文件中讀取固定大小數據,且go作為回調,傳遞給其他函數中,多次調用,完成逐塊傳輸數據

(core工程文件) tick_transfer_all_t類是一個用于異步傳輸數據的輔助類,它在某個異步操作完成后將_tick的值設置為0,并返回傳輸的結果 namespace hl {namespace http{namespace __detail{class tick_transfer_all_t{boost::shared_ptr<unsigned long long> _tick

MySQL 查詢庫 和 表 占用空間大小的 語句

查看mysql 數據庫的大小 SELECT table_schema AS 數據庫名稱, ROUND(SUM(data_length index_length) / 1024 / 1024, 2) AS 數據庫大小(MB) FROM information_schema.tables GROUP BY table_schema;查詢數據庫中表的 數據量&#xff08;這個方法 有緩存延遲&#xff0c;只能用…

[力扣題解] 96. 不同的二叉搜索樹

題目&#xff1a;96. 不同的二叉搜索樹 思路 動態規劃 f[i]&#xff1a;有i個結點有多少種二叉搜索樹 狀態轉移方程&#xff1a; 以n3為例&#xff1a; 以1為頭節點&#xff0c;左子樹有0個結點&#xff0c;右子樹有2個結點&#xff1b; 以2為頭節點&#xff0c;左子樹有1個…

安科瑞AIM-D100-ES光伏儲能系統直流絕緣監測儀

概述 AIM-D100-ES 型直流絕緣監測儀主要用于在線監測直流不接地系統正負極對地絕緣電阻&#xff0c;當絕緣電阻低于設定值時&#xff0c;能發出預警和報警信號。 產品可測 100-1500V 的直流系統&#xff0c;可應用于儲能直流系統、電動汽車充電裝置、UPS 供電系統、光伏直流系…

超級好用的C++實用庫之日志類

&#x1f4a1; 需要該C實用庫源碼的大佬們&#xff0c;可搜索微信公眾號“希望睿智”。添加關注后&#xff0c;輸入消息“超級好用的C實用庫”&#xff0c;即可獲得源碼的下載鏈接。 概述 日志類主要用于在程序運行過程中記錄信息、錯誤、警告以及其他需要跟蹤的數據&#xff0…

std::ref和std::cref的使用和原理分析

目錄 1.用法 2.std::reference_wrapper介紹 3.std::ref原理分析 4.std::cref原理分析 5.總結 1.用法 它的定義如下&#xff1a; std::ref&#xff1a;用于包裝按引用傳遞的值。 std::cref&#xff1a;用戶包裝按const引用傳遞的值。 C本身就有引用&#xff08;&&#…