摘要:通常使用矢代器來實現遍歷集合。將集合中指定索引位置的對象改成指定的對象。三元運算如果否則集合沒有繼承接口,它是提供到的映射,來決定遍歷對象的順序。
1.Collection接口是層次結構中的跟接口。Collection接口通常不能直接使用,但該接口提供了添加元素,刪除元素,管理數據的方法。
Collection通常使用矢代器(Iterator)來實現遍歷集合。
代碼:
import java.util.*; public class Muster { // 創建類Muster public static void main(String args[]) { Collectionlist = new ArrayList<>(); // 實例化集合類對象 list.add("a"); // 向集合添加數據 list.add("b"); list.add("c"); int Size = list.size();//返回int類型,獲取該集合中元素的個數 Iterator it = list.iterator(); // 創建迭代器 while (it.hasNext()) { // 判斷是否有下一個元素 String str = (String) it.next(); // 獲取集合中元素 System.out.println(str); } System.out.println(Size); } }
結果:
2.List集合:
List集合中的元素應許重復,各元素的順序就是對象插入的順序。
LIst接口繼承了Collection接口,此外還定義了兩個非常重要的方法:
get(int index): 獲取指定索引位置的元素。 set(int index,Object obj) : 將集合中指定索引位置的對象改成指定的對象。
List接口的常用實現類有ArrayList 與 LinkedList。
a、ArrayList優點:隨機訪問速度快,缺點:刪除或插入對象的速度慢。
b、LinkedList 正好相反。
代碼:
import java.util.*; public class Gather { // 創建類Gather public static void main(String[] args) { // 主方法 Listlist = new ArrayList<>(); // 創建集合對象 list.add("a"); // 向集合添加元素 list.add("b"); list.add("c"); int i = (int) (Math.random() * (list.size() - 1)); // 獲得0~1之間的隨機數 System.out.println("隨機獲取數組中的元素:" + list.get(i)); list.remove(2); // 將指定索引位置的元素從集合中移除 System.out.println("將索引是"2"的元素從數組移除后,數組中的元素是:"); for (int j = 0; j < list.size(); j++) { // 循環遍歷集合 System.out.println(list.get(j)); } System.out.println("最終集合中元素的個數:"+list.size()); //用矢代器遍歷集合 Iterator it = list.iterator(); while(it.hasNext()){ String str = (String)it.next(); System.out.println(str); } } }
結果:
3.Set集合
Set集合不按特定的順序排序,只是簡單把對象加入到集合中,但不能包含重復對象。
Set接口常用的實現類有HashSet類與Tree類。Set繼承了Comparable 接口。這個接口可參考JAVA API文檔
a、HashSet類有哈希表,遍歷的對象隨機
b、TreeSet類遍歷數組不僅可以按照自然順序排序,還可以按照指定順序排序。
代碼:
import java.util.*; public class UpdateStu implements Comparable
結果:
補充:
細心的同學會發現上面的程序是繼承 Comparable 這個類的,且里面用到了compareTo方法,這好似接口中的方法,可以重寫該方法,返回的值就決定了Set集合遍歷數組的排序。這就是TreeSet可以自定義排序的秘密所在。
/*例如:pojo復寫了compareTo ()方法以后,對放入set集合的對象會根據compareTo ()方法的返回值進行排序,如果ast.height-this.height 為負值就是降序,以后每次比較正的放后面 負的放前面。*/ int result = id > upstu.id ? 1 : (id == upstu.id ? 0 : -1); /*三元運算: 如果 id>upstu,return 1 ,否則 return (id == upstu.id ? 0 : -1)*/
4.Map集合:
Map沒有繼承Collection接口,它是提供key到value的映射,來決定遍歷對象的順序。
注意每個key只能映射一個值。
代碼:
先創建Emp,獲得對象
public class Emp { private String e_id; private String e_name; public Emp( String e_id,String e_name) { this.e_id = e_id; this.e_name = e_name; } public String getE_id() { return e_id; } public void setE_id(String e_id) { this.e_id = e_id; } public String getE_name() { return e_name; } public void setE_name(String e_name) { this.e_name = e_name; } }
在創建 MapText 遍歷對象
import java.util.*; public class MapText { // 創建類MapText public static void main(String[] args) { // 主方法 Mapmap = new HashMap<>(); // 由HashMap實現的Map對象 Emp emp = new Emp("001", "廈門"); Emp emp2 = new Emp("005", "上海"); // 創建Emp對象 Emp emp3 = new Emp("004", "北京"); map.put(emp.getE_id(), emp.getE_name()); map.put(emp2.getE_id(), emp2.getE_name()); // 將對象添加到集合中 map.put(emp3.getE_id(), emp3.getE_name()); Set set = map.keySet(); // 獲取Map集合中的key對象集合 Iterator it = set.iterator(); System.out.println("HashMap類實現的Map集合,無序:"); while (it.hasNext()) { String str = (String) it.next(); String name = (String) map.get(str); // 遍歷Map集合 System.out.println(str + " " + name); } TreeMap treemap = new TreeMap<>(); // 創建TreeMap集合對象 treemap.putAll(map); // 向集合添加對象 Iterator iter = treemap.keySet().iterator(); System.out.println("TreeMap類實現的Map集合,鍵對象升序:"); while (iter.hasNext()) { // 遍歷TreeMap集合對象 String str = (String) iter.next(); // 獲取集合中的所有key對象 String name = (String) treemap.get(str); // 獲取集合中的所有values值 System.out.println(str + " " + name); } } }
結果:
補充:
使用Map集合需要先獲取Map集合中的Key對象,再根據這個key映射對value進行遍歷,key獲取的順序決定value排列的順序。
Setset = map.keySet(); // 獲取Map集合中的key對象集合
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64302.html
摘要:近段時間在學習集合,原本也沒想著寫筆記或者博客的。在安卓開發的時候已經有在用集合了,具體是用向上轉型到對象。我覺得集合比數組方便的地方主要有個所有操作都是基于對象進行,符合的核心思想。集合主要由兩個接口派生而來以及。 ????近段時間在學習java集合,原本也沒想著寫筆記或者博客的。但是慢慢看下去之后發現java集合的內容繁多,但是各集合之間具有很大的共通性。所以就動了寫博客的念頭。?...
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
摘要:簡單來說,是一個輕量級的控制反轉和面向切面的容器框架。變成的支持提供面向切面編程,可以方便的實現對程序進行權限攔截,運行監控等功能。用于反射創建對象,默認情況下調用無參構造函數。指定對象的作用范圍。 1.Spring介紹 1.1 Spring概述 Spring是一個開源框架,Spring是于2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert...
摘要:第三階段常見對象的學習集合框架概述和集合的遍歷一集合框架的概述集合的由來如果一個程序只包含固定數量的且其生命周期都是已知的對象,那么這是一個非常簡單的程序。進而它們的遍歷方式也應該是不同的,最終就沒有定義迭代器類。 第三階段 JAVA常見對象的學習 集合框架概述和集合的遍歷 (一) 集合框架的概述 (1) 集合的由來 如果一個程序只包含固定數量的且其生命周期都是已知的對象,那么這是一...
閱讀 3568·2021-11-16 11:45
閱讀 2114·2021-11-08 13:23
閱讀 2219·2021-10-11 10:59
閱讀 2898·2021-09-27 13:36
閱讀 2484·2019-08-30 15:54
閱讀 2674·2019-08-29 16:58
閱讀 2792·2019-08-29 16:56
閱讀 1346·2019-08-26 13:52