摘要:集合中的集合是一種工具類,就像是容器,存儲任意數量的具有共同屬性的對象集合的作用在類的內部,對數據進行組織簡單而快速的搜索大量數目的條目有的集合接口,提供了一系列排列有序的元素,并且可以在序列中進行快速的插入和刪除有些集合接口,提供了映射關
集合
java中的集合: 是一種工具類,就像是容器,存儲任意數量的具有共同屬性的對象
集合的作用
1. 在類的內部,對數據進行組織 2. 簡單而快速的搜索大量數目的條目 3. 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中進行快速的插入和刪除 4. 有些集合接口,提供了映射關系,可以通過關鍵字key去快速的查找到對應的唯一對象
集合和數組的區別
1. 數組的長度是固定的,但是集合可變 2. 數組只能通過數組下標查找,類型固定,而有的集合可以通過任意類型查找所映射的對象java集合的框架 Collection 接口
Collection接口 是List、Set、Queue的父接口,
List接口之ArrayList
1. List是元素有序并且可重復的集合,被稱為是序列 2. List可以精準控制每個元素的插入和刪除 3. ArrayList --數組序列,是一個重要實現類 4. ArrayList底層是數組實現的
ArrayList的增刪改查
package com.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; /** * 備選課程類 * @author zjj * ArrayList的增刪改查 * */ public class ListTest { private List coursesList; // 備選課程列表 public ListTest() { this.coursesList = new ArrayList(); } public List getCoursesList() { return coursesList; } public void setCoursesList(List coursesList) { this.coursesList = coursesList; } // 添加課程 public void listAdd() { // 添加一個課程 course c1 = new course("1", "c語言"); coursesList.add(c1); course temp = (course)coursesList.get(0); System.out.println("添加了課程:"+temp.getId()+";"+temp.getName()); course cr2=new course("2","數據結構"); coursesList.add(0,cr2); course temp2=(course)coursesList.get(1); System.out.println("添加了課程:"+temp2.getId()+";"+temp2.getName()); /**course cr2=new course("2","C語言"); coursesList.add(4,cr2); 報錯,數組下標越界*/ // 添加一個數組進去 course [] course = {new course("3","離散"), new course("4","毛概")}; coursesList.addAll(Arrays.asList(course)); course temp3 = (course) coursesList.get(2); course temp4 = (course) coursesList.get(3); System.out.println("添加了課程:"+temp3.getId()+";"+temp3.getName()); System.out.println("添加了課程:"+temp4.getId()+";"+temp4.getName()); course [] course1 = {new course("5","網絡"), new course("6","信息")}; coursesList.addAll(2,Arrays.asList(course1)); course temp5 = (course) coursesList.get(2); course temp6 = (course) coursesList.get(3); System.out.println("添加了課程:"+temp5.getId()+";"+temp5.getName()); System.out.println("添加了課程:"+temp6.getId()+";"+temp6.getName()); } /** * for循環遍歷List */ public void testGet() { int len = coursesList.size(); // 獲取到ArrayList的長度 System.out.println("========================="); for(int i = 0; i < len; i++) { course temp = (course) coursesList.get(i); System.out.println("添加了課程:"+temp.getId()+";"+temp.getName()); } } /** * 通過迭代器來遍歷List */ public void Listget() { Iterator it = coursesList.iterator(); // 迭代器方法 System.out.println("==========迭代器==============="); while(it.hasNext()) { course lt = (course) it.next(); System.out.println("添加了課程:"+lt.getId()+";"+lt.getName()); } } /** * 通過foreach遍歷 */ public void testForEach() { System.out.println("==========forEach循環==============="); for(Object obj :coursesList) { course cr = (course) obj; System.out.println("添加了課程:"+cr.getId()+";"+cr.getName()); } } /** * 修改課程 */ public void modify() { coursesList.set(2, new course("10", "修改的name")); } /** * 刪除課程 */ public void delete() { course cr = (course) coursesList.get(4); coursesList.remove(cr); // coursesList.remove(4); 效果同上 // 同時刪除多個 course [] courses = {(course) coursesList.get(1), (course) coursesList.get(2)}; coursesList.removeAll(Arrays.asList(courses)); } }
泛型管理
1.集合中的元素是可以是任意類型的對象,如果把這個對象放入集合,則會忽略它的類別,而把他當作是一個Object來處理,這也就是我們為什么需要進行強制類型轉換為course的原因了
2.泛型則是規定了某一個集合中只能存放某些特定類型的對象,會在編譯期間進行類型檢查,可以直接按照指定的類型獲取元素
package com.collection; import java.util.ArrayList; import java.util.List; /** * 測試泛型 * @author zjj * */ public class testGeneric { // 泛型就是在<>中寫明規定的類型 public ListcourseList; public testGeneric() { this.courseList = new ArrayList (); } public void add () { course c = new course("1","語文"); courseList.add(c); } public void forEach() { // 注意這里,我們可以直接使用course,不需要先寫成Object,再強轉 for(course c: courseList) { System.out.println("課程:" +c.getId()+";"+c.getName()); } } public static void main(String [] args) { testGeneric d = new testGeneric(); d.add(); d.forEach(); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76773.html
摘要:我的是忙碌的一年,從年初備戰實習春招,年三十都在死磕源碼,三月份經歷了阿里五次面試,四月順利收到實習。因為我心理很清楚,我的目標是阿里。所以在收到阿里之后的那晚,我重新規劃了接下來的學習計劃,將我的短期目標更新成拿下阿里轉正。 我的2017是忙碌的一年,從年初備戰實習春招,年三十都在死磕JDK源碼,三月份經歷了阿里五次面試,四月順利收到實習offer。然后五月懷著忐忑的心情開始了螞蟻金...
摘要:歡迎進入基礎課程博客地址本系列文章將主要針對一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸開發菜鳥還是業界資深人士,都希望對廣大同行帶來一些幫助。語法是,或者更一般的,要求構造器方法是沒有參數靜態方法引用。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所總結,...
摘要:歡迎進入基礎課程博客地址本系列文章將主要針對一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸開發菜鳥還是業界資深人士,都希望對廣大同行帶來一些幫助。語法是,或者更一般的,要求構造器方法是沒有參數靜態方法引用。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所總結,...
摘要:感謝你看到這里,迭代器模式上部分到這里就結束了,本人文筆隨便,若有不足或錯誤之處望給予指點,度彎腰很快我會補全這個內容,生命不息,編程不止參考書籍設計模式 有許多種方法可以把對象堆起來成為一個集合 好消息,當地的餐廳和煎餅屋合并了,但是兩者實現的方式卻不同,這就造成了分歧。讓我們一起去看看把。showImg(https://segmentfault.com/img/bVV5sB?w=...
摘要:虛擬機實現了語言最重要的特征平臺無關性。基本組成詳細框架步驟從操作系統的角度看來,虛擬機人只是一個普通進程。虛擬機能夠加載我們編寫的文件食物。虛擬機中的執行引擎腸胃用來執行文件中的字節碼指令。虛擬機在執行過程中,要分配內存創建對象。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,...
閱讀 3513·2021-11-17 17:01
閱讀 3918·2021-11-08 13:12
閱讀 2477·2021-10-08 10:04
閱讀 687·2021-09-29 09:35
閱讀 1418·2021-09-26 10:12
閱讀 2021·2021-09-07 09:58
閱讀 1953·2019-08-30 15:55
閱讀 2134·2019-08-30 13:14