java-Collection,List簡單使用與方法/(集合使用-中)

来源:http://www.cnblogs.com/CaiNiao-TuFei/archive/2017/08/24/7425814.html
-Advertisement-
Play Games

1.1集合只存放引用類型的元素並且集合存放的時元素的引用(地址)1.2新迴圈遍歷集合 Collection c = new ArrayList(); c.add("one"); c.add("two"); c.add("three"); c.add("four"); /* * 新迴圈不是新的語法,j ...


1.1集合只存放引用類型的元素並且集合存放的時元素的引用(地址)
1.2新迴圈遍歷集合
Collection c = new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
/*
* 新迴圈不是新的語法,jvm並不認可新迴圈。
* 新迴圈是編譯器認可的,當編譯器發現在使用新迴圈遍歷集合時,會將代碼改變為使用迭代器遍歷,所以使用新迴圈遍歷集合的過程中是不能通過集合的方法增刪元素的。
*
*/
for (Object object : c) {
String str = (String)object;
System.out.println(str);
}
1.3集合的操作
boolean addAll(collection c) 將給定的集合中的元素存入到當前集合中 當前集合元素髮生了變化則返回true
boolean containsAll(Collection c) 判斷當前集合是否包含給定集合中的所有元素
boolean removeAll(Collection c) 刪除當前集合中與給定集合的相同元素
1.4遍歷集合--集合提供統一的遍歷元素的方式:迭代器模式
集合提供了用於獲取遍歷當前集合元素的方法:
java.util.Iterator
Iteartor iterator()迭代器的介面,規定了遍歷集合的方法,遵循的模式為:問,取,刪的步驟,其中刪除元素不是必須操作。不同的集合實現類都提供了一個可以遍歷自身的迭代器實現類。我們無需記住它們的名字,當他們的Iterator看待即可。
boolean hasNext()判斷集合是否還有元素可以遍歷
E next() 取出集合下一個可以遍歷的元素
在使用迭代器遍歷集合元素的過程中,不能通過集合的方法增刪元素否則會引發迭代器遍歷集合的異常,但是迭代器的remove能刪除通過next方法取出的元素
1.5新迴圈--新迴圈又稱為:增強for迴圈,for each,新迴圈的作用是用來遍歷集合或數組-----新迴圈是JDK1.5之後推出的一個新特性
使用新迴圈遍歷集合:新迴圈並非新的語法,JVM並不認可新迴圈。新迴圈是編譯器認可的,當編譯器發現在使用新迴圈遍歷集合時,會將代碼改變為使用迭代器遍歷。所以使用新迴圈遍歷集合的過程中是不能通過集合的方法增刪元素的。如果在新迴圈中刪除元素會拋出異常。
1.6泛型--1.5之後推出的一個特性,泛型是編譯器認可泛型的實際類型是Object,在使用的時候編譯器會進行檢查或自動造型。當對泛型變數賦值時,編譯器檢查是否符合類型要求獲取泛型值時,編譯器會補充自動造型的代碼。不指定泛型則預設認為object。泛型用來規定集合中的元素類型
1.7List_get_set--java.util.List
List是Collection的子類型介面。是可重覆集,並且有序,提供了一套可以根據下標操作元素的方法。
常用實現類:
java.util.ArrayList:數組實現,查詢效率高
java.util.LinkedList:鏈表實現,增刪元素效率高尤其是首尾增刪元素。
E get(int index) 將指定下標所對應的元素返回
E set(int index,E e) 將給定元素替換集合中指定位置的元素並將被替換元素返回。
1.8List_add_remove:List提供了一對重載的add,remove方法也可以通過下標操作元素刪除方法會返回一個刪除的元素。
1.9獲取List子集:List<E> subList(int startindex,int endindex) 截取集合中指定位置的元素,並返回截取的元素;操作獲取的子集的時候就等於操作原有集合
1.10集合轉換為數組 ---Collection中提供了將當前集合轉換為一個數組的方法
E[] array= c.toArray(new E[c.size()]);將集合轉換為數組,傳一個泛型數組並設置長度,如果設置長度不夠也會返回一個剛好和元素相等的數組,如果參數長度大於原有數組,則返回輸入長度的數組,沒有元素的位置為null。
1.11數組轉換為集合---List<String> list = Arrays.asList(array);將數組轉化為集合,操作返回後的集合等於操作原來的數組,並且不能增刪元素,如果想增加元素需要新建一個數組將返回數組的值傳入並操作。
List<String> list1 = new ArrayList<String>(list);這個方法可以在創建新數組的同時將原有數組的元素添加進來。

 

我是初學者,如有更新不好的,歡迎這位大神指出,謝謝大家!

更多精彩以後更新,轉載註明!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Int.ToString(format): 格式字元串採用以下形式:Axx,其中 A 為格式說明符,指定格式化類型,xx 為精度說明符,控制格式化輸出的有效位數或小數位數,具體如下: 格式說明符 說明 示例 輸出 C 貨幣 2.5.ToString("C") ¥2.50 D 十進位數 25.ToSt ...
  • C# 2.0 引入了局部類型的概念。局部類型允許我們將一個類、結構或介面分成幾個部分,分別實現在幾個不同的.cs文件中。局部類型適用於以下情況:(1) 類型特別大,不宜放在一個文件中實現。(2) 一個類型中的一部分代碼為自動化工具生成的代碼,不宜與我們自己編寫的代碼混合在一起。(3) 需要多人合作編 ...
  • 在日常開發過程中,不可避免的涉及到數據加密解密(Hash)操作,所以就有想法開發通用工具,NETCore.Encrypt就誕生了。目前NETCore.Encrypt只支持.NET Core ,工具包含了AES,RSA加密解密,MD5,SHA*,HMAC*等常用Hash操作。 ...
  • 單利模式 確保一個類只有一個實例,並提供一個訪問它的全局訪問點 下麵用代碼來實現: /// <summary> /// 單利模式類 /// /// </summary> public class interest { /// <summary> /// 定義一個單利鎖 /// </summary> ...
  • 一個簡單小實例 首先將word要綁定的地方放入占位符 通過谷歌瀏覽器打開該word格式化為xml,也可以通過更改擴展名。(最終目的實現生成的xml文件與word文件,只要更改擴展名就能互相展示) 後臺代碼 ...
  • 聲明:本人無意侵犯原作者的版權,這裡可下載的文檔都屬於作者自行開放下載的,統一放置在這裡是因為不可預測的原因使得原文檔和代碼不方便下載,故將我所收集的內容統一在這裡,如果這裡的內容侵犯了別人,請告知我會第一時間刪除,謝謝理解。 Java編程思想(英文第1版)+源代碼 Java編程思想(英文第2版) ... ...
  • 寫這篇文章的目的是想總結一下自己這麼多年來使用java的一些心得體會,主要是和一些java基礎知識點相關的,所以也希望能分享給剛剛入門的Java程式員和打算入Java開發這個行當的準新手們,希望可以給大家一些經驗,能讓大家更好學習和使用Java。 這次介紹的主要內容是和J2SE相關的部分,另外,會在 ...
  • 一、基於@ExceptionHandler 註解的異常處理方法: 1.加上<mvc:annotation-driven>標簽:(該標簽是標配,開發時一般都攜帶) 2.在當前Handler中定義由@ExceptionHandler註解修飾的方法,用於處理異常信息! @ExceptionHandler( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...