Java之路---Day15(Collection類)

来源:https://www.cnblogs.com/hpcz190911/archive/2019/11/02/11780327.html
-Advertisement-
Play Games

2019-11-01-22:09:09 目錄 1.Collection集合的概念 2.Collection集合常用方法 3.Iterator迭代器 4.增強for 5.Collection常用工具類 Collection集合的概念 ●集合:集合是java中提供的一 種容器,可以用來存儲多個數據。 集 ...


2019-11-01-22:09:09

目錄

  1.Collection集合的概念

  2.Collection集合常用方法

  3.Iterator迭代器

  4.增強for

  5.Collection常用工具類


Collection集合的概念

  ●集合:集合是java中提供的一 種容器,可以用來存儲多個數據。

  集合和數組既然都是容器,它們有啥區別呢?

    ●數組的長度是固定的。集合的長度是可變的。

    ●數組中存儲的是同-類型的元素.可以存儲基本數據類型值。集合存儲的都是對象。而且對象的類型可以不一致。在開發中一般當對象多的時候,使用集合進行存儲。

Collection集合常用方法

 1 package demosummary.collection;
 2 /*
 3    public boolean add(E e) :把給定的對象添加到當前集合中。
 4   public void clear():清空集合中所有的元素。
 5   public boolean remove(e e);把給定的對象在當前集合中刪除。
 6   public boolean contains(E e) ;判斷當前集合中是否包含給定的對象。
 7   public boolean isEmpty(): 判斷當前集合是否為空。
 8   public int size(): 返回集合中元素的個數。
 9   public object[] toArray(): 把集合中的元素,存儲到數組中。
10  */
11 import java.util.ArrayList;
12 import java.util.Collection;
13 
14 public class CollectionTest {
15     public static void main(String[] args) {
16 
17         Collection<String> str = new ArrayList<>();
18         /*
19             public boolean add(E e) :把給定的對象添加到當前集合中
20          */
21         boolean b = str.add("張三");
22 //        System.out.println(b);//true
23         str.add("李四");
24         str.add("王五");
25         str.add("錢六");
26         str.add("趙七");
27 //        System.out.println(str);//[張三, 李四, 王五, 錢六, 趙七]
28         /*
29             public boolean remove(e e);把給定的對象在當前集合中刪除
30          */
31 
32 //        boolean b1 = str.remove("李四");
33 //        System.out.println(b1);//true
34 //        System.out.println(str);//[張三, 王五, 錢六, 趙七]
35 
36         /*
37           public boolean contains(E e) ;判斷當前集合中是否包含給定的對象
38          */
39         boolean b2 = str.contains("孫八");
40         boolean b3 = str.contains("趙七");
41         System.out.println(b2);//false
42         System.out.println(b3);//true
43 
44         /*
45           public boolean isEmpty(): 判斷當前集合是否為空。
46          */
47 
48         boolean b4 = str.isEmpty();
49         System.out.println(b4);//false
50 
51         /*
52           public int size(): 返回集合中元素的個數
53          */
54         int b5 = str.size();
55         System.out.println(b5);//5
56 
57         /*
58           public object[] toArray(): 把集合中的元素,存儲到數組中
59          */
60         Object[] obj = str.toArray();
61         System.out.println(obj[0]);//張三
62         for (Object o : obj) {
63             System.out.println(o);
64         }
65 
66         /*
67           public void clear():清空集合中所有的元素
68          */
69         str.clear();
70         System.out.println(str);//[]
71     }
72 }

Iterator迭代器

  Iterator介面

    在程式開發中.經常需要遍歷集合中的所有元素。針對這種需求, JDK專門提供了一個介面java.util. Iterator。Iterator 介面也是Java集合中的一員,但它與collection、Map 介面有所不同,Collection介面與Map介面主要用於存儲元素,而Iterator主要用於迭代訪問(即遍歷) Collection中的元素,因此Iterator對象也被稱為迭代器。

  迭代:

    即Collection集合元素的通用獲取方式。在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續再判斷,如果還有就再取出來。一直把集合中的所有元素全部取出。這種取出方式專業術語稱為迭代。

  Iterator介面的常用方法

    public E next() :返回迭代的下一個元素。
    public boolean hasNext() :如果仍有元素可以迭代,則返回true.

 1 package demosummary.collection;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.Iterator;
 6 
 7 public class IteratorTest {
 8     public static void main(String[] args) {
 9         //創建一個集合
10         Collection<String> obj = new ArrayList<>();
11         //往集合中添加元素
12         obj.add("德瑪");
13         obj.add("皇子");
14         obj.add("德邦");
15         obj.add("劍聖");
16         //使用多態方式來創建實現類對象
17         Iterator<String> iter = obj.iterator();
18         //使用while迴圈來迭代集合
19         while (iter.hasNext()){
20             String next = iter.next();//使用迭代器原理
21             System.out.println(next);
22         }
23     }
24 }

增強for  

  增強for迴圈:底層使用的也是迭代器,使用for迴圈的格式,簡化了迭代器的書寫是JDK1.5之後出現的新特性

  collection<E>extends Iterable<E>:所有的單列集合都可以使用增強for
  public interface Iterable<T>實現這個介面允許對象成為 "foreach"語句的目標。
  增強for迴圈:用來遍歷集合和數組
  
格式:

    for(集合/數組的數據類型變數名:集合名/數組名){
      sout(變數名);

    }

 1 package demosummary.collection;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.Iterator;
 6 
 7 public class IteratorTest {
 8     public static void main(String[] args) {
 9         //創建一個集合
10         Collection<String> obj = new ArrayList<>();
11         //往集合中添加元素
12         obj.add("德瑪");
13         obj.add("皇子");
14         obj.add("德邦");
15         obj.add("劍聖");
16         //使用多態方式來創建實現類對象
17         Iterator<String> iter = obj.iterator();
18         //增強for
19         for (String str : obj) {
20             System.out.println(str);
21         }
22     }
23 }

Collection常用工具類

  java.utils.collections 是集合工具類,用來對集合進行操作。部分方法如下:
    public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
    public static vold shuffle(List<?> 1list) :打亂順序:打亂集合順序。

 1 package demosummary.collection;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.Collections;
 6 
 7 /*
 8       public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
 9     public static void shuffle(List<?> 1list) :打亂順序:打亂集合順序。
10     public static <T> void sort(List<T> list) :將集合中元素按照預設規則排序。
11     public static <T> void sort(List<T> ist, Comparator<? super T> ) :將集合中元素按照指定規則排序。
12  */
13 public class CollectionTools {
14     public static void main(String[] args) {
15         ArrayList<String> obj = new ArrayList<>();
16         //一開始學的添加元素的方法
17 //        obj.add("德瑪");
18 //        obj.add("皇子");
19 //        obj.add("德邦");
20 //        obj.add("劍聖");
21 
22         /*
23               public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
24          */
25 
26         //用collection的方法來添加元素
27         Collections.addAll(obj,"德瑪","皇子","德邦","劍聖");
28         System.out.println(obj);//[德瑪, 皇子, 德邦, 劍聖]
29 
30         /*
31             public static void shuffle(List<?> 1list) :打亂順序:打亂集合順序。
32          */
33         Collections.shuffle(obj);
34         System.out.println(obj);//[皇子, 德瑪, 德邦, 劍聖]
35 
36     }
37 }

    public static <T> void sort(List<T> list) :將集合中元素按照預設規則排序。
    public static <T> void sort(List<T> ist, Comparator<? super T> ) :將集合中元素按照指定規則排序。

 1 package demosummary.collection;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 
 7 public class CollectionTools02 {
 8     public static void main(String[] args) {
 9         //創建一個集合對象
10         ArrayList<Integer> obj = new ArrayList<>();
11         //使用collection方法添加元素
12         Collections.addAll(obj,4,3,2,1);
13         //  public static <T> void sort(List<T> list) :將集合中元素按照預設規則排序。
14         //預設是升序
15         Collections.sort(obj);
16         System.out.println(obj);//[1, 2, 3, 4]
17 
18         /*
19             public static <T> void sort(List<T> ist, Comparator<? super T> ) :將集合中元素按照指定規則排序。
20          */
21         //創建一個集合對象
22         ArrayList<Person> obj01 = new ArrayList<>();
23         //往集合添加元素
24         obj01.add(new Person("德瑪",18));
25         obj01.add(new Person("皇子",19));
26         obj01.add(new Person("德邦",20));
27         obj01.add(new Person("劍聖",18));
28         //輸出原來集合的排序
29         System.out.println(obj01);
30         //使用collection的方法按照指定規則排序
31         Collections.sort(obj01, new Comparator<Person>() {
32             @Override
33             public int compare(Person o1, Person o2) {
34                 //按照大小來排序
35                 int result = o1.getAge()-o2.getAge();
36                 if (result==0){
37                     result=o1.getName().charAt(0)-o2.getName().charAt(0);
38                 }
39                 return result;
40             }
41         });
42         System.out.println(obj01);
43     }
44 }

 


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

-Advertisement-
Play Games
更多相關文章
  • 最近做控制項遇到含有波浪圖的圖表,一開始用Echarts雖然很快完成了,但Echarts的波浪圖與其他圖表的響應式不同步,於是學習了D3js,D3js寫起來確實複雜一些,但能夠實現的效果也更豐富,做的時候查了不少資源,講真的,網上教程挺少的,很多都重覆,我分享下我的方法。 先看一下效果: 我只做了簡單 ...
  • 前言: 簡單的操作 1)可以通過審查元素的方法,來設置自己滿意的樣式。操作是F12。F12操作可以打開控制面板,具體的樣式可以直接在上面修改,然後把修改後的樣式保存下來。 2)保存後的樣式,複製到[ 管理 ] - [ 設置 ] - 頁面定製CSS代碼上面,然後[ 保存 ] 1、隱藏廣告 2、按鈕樣式 ...
  • 鏈棧的定義: 棧的鏈式存儲結構稱為鏈棧,它是運算受限的單鏈表, 插入和刪除操作僅限制在表頭位置上進行。棧頂指針就是鏈 表的頭指針 ...
  • 在博主認為,學習java的最佳學習方法莫過於視頻+博客+書籍+總結,前三者博主將淋漓盡致地揮毫於這篇博客文章中,至於總結在於個人,博主將為各位保駕護航,各位只管沖鴨!!!上天是公平的,只要不辜負時間,時間自然不會辜負你。 何謂學習?博主所理解的學習,它是一個過程,是一個不斷 累積 、不斷 沉澱 、不 ...
  • 一、作用域相關-2個 1、locals() 參數是空 返回當前位置作用域的所有變數,返回的是字典 當前位置:函數內,返回局部變數 當前位置:函數外,返回全局變數 2、globals() 參數是空 返回全局變數,返回的是字典二、迭代器-生成器相關--3個 1、range() 生成數字數據,例如:等差數 ...
  • 如何在Idea中編譯構建Spring Framework 5.x 1. 安裝配置Gradle 2. 下載源碼:git clone https://github.com/spring projects/spring framework.git 3. 按照工程下 文件的提示進行操作 markdown T ...
  • 上篇文章,我們已經安裝好 Nginx,並且配置好 Nginx 文件後,這個時候我就需要操作 Nginx 的命令行了,這篇文章主要講解 Nginx 命令行相關知識,並通過日常遇到的熱部署、切割日誌文件場景來熟悉 Nginx 命令行操作。 推薦閱讀: "Nginx 瞭解一下?" Nginx 命令行 1. ...
  • Local是什麼? 無論你接觸到的是threading.Local還是werkzeug.Local,它們都代表一種變數——每個線程自己的全局變數。 全局變數,一般位於進程的堆上。一個進程的所有線程都可以訪問同一個全局變數,因為它們共用著進程的地址空間,所以每一個線程都可以訪問,這也帶來了問題,如果多 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...