国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java集合框架(上)

2019-11-06 07:52:46
字體:
來源:轉載
供稿:網友

java中的集合類

-一種容器,存儲任意數量具有共同屬性的對象。

集合的作用

-容量在運行時可以動態擴展 -在類的內部,對數據進行組織。 -簡單而快速的搜索大數量的條目。 -有的集合接口,提供了一系列排列有序的元素,并且可以在序列中間快速的插入或者刪除有關的元素。 -有的集合接口,提供了映射關系,可以通過關鍵字(key)去快速找到對應的唯一對象,而這個關鍵字可以使任意類型。

與數組的對比

-數組長度固定,集合長度可變。 -數組只能通過下標訪問元素,類型固定,而有的集合可以通過任意類型查找所映射的具體對象。

與泛型的關系

-集合中的元素,可以是任意類型的對象(對象的引用) -泛型則是規定了某個集合只能存放特定類型的對象 -泛型集合可添加泛型子類型的實例對象 -泛型集合中的限定類型不能使用基本的數據類型 -可以通過使用包裝類限定允許存入的基本數據類型

集合體系結構

collection

-Lsit

存儲元素排列有序,并且可重復

-Queue

存儲元素排列有序,并且可重復

-Set

無序且不可重復

這里寫圖片描述

Collection接口、子接口以及實現類

這里寫圖片描述

Lsit接口及其實現類——ArrayList

-List是元素有序并且可以重復的集合,被稱為序列 -List可以精確控制每個元素的插入位置,或刪除某個元素 -ArrayList——數組序列,是List一個重要實現類 -ArrayList底層由數組實現

List的常用方法

public class ListTest { PRivate List<Course> listCourses; public ListTest(List<Course> listCourses) { this.listCourses = listCourses; } // 用于向課程集合中添加被選課程 public void add() { Course course1 = new Course("1", "數據結構"); listCourses.add(course1); Course temp = listCourses.get(0); System.out.println(temp.getId() + "/" + temp.getName()); Course course2 = new Course("2", "C語言"); /* * 在可以訪問的位置中插入數據,之前相應的數據位置往后移動一位 目前可訪問的位置為0 若試圖訪問其他位置則會發生數組下標越界異常 */ listCourses.add(0, course2); Course temp2 = listCourses.get(0); System.out.println(temp2.getId() + "/" + temp2.getName()); // 一次添加多個元素 Course[] courses = { new Course("3", "離散數學"), new Course("4", "匯編語言") }; // asList將數組轉換為集合 listCourses.addAll(Arrays.asList(courses)); Course temp3 = listCourses.get(2); System.out.println(temp3.getId() + "/" + temp3.getName()); Course temp4 = listCourses.get(3); System.out.println(temp4.getId() + "/" + temp4.getName()); Course[] courses2 = { new Course("5", "高等數學"), new Course("6", "大學英語") }; // 新添加的兩門課程從2處插入 listCourses.addAll(2, Arrays.asList(courses2)); Course temp5 = listCourses.get(2); System.out.println(temp5.getId() + "/" + temp5.getName()); Course temp6 = listCourses.get(3); System.out.println(temp5.getId() + "/" + temp6.getName()); } // 獲取集合中元素 public void get() { int size = listCourses.size(); System.out.println("調用get方法"); for (int i = 0; i < size; i++) { Course course = listCourses.get(i); System.out.println(course.getId() + "/" + course.getName()); } } // 通過迭代器來遍歷List public void iterator() { // 迭代器需要依賴集合存在,本身不能獨立存在 Iterator<Course> iterator = listCourses.iterator(); System.out.println("通過迭代器訪問"); while (iterator.hasNext()) { Course course = iterator.next(); System.out.println(course.getId() + "/" + course.getName()); } } // 通過foreach遍歷List public void foreach() { System.out.println("調用foreach"); for (Course course : listCourses) { System.out.println(course.getId() + "/" + course.getName()); } } // 修改List中的元素 public void set() { System.out.println("調用set"); // 將指定位置的元素進行修改 listCourses.set(1, new Course("1", "Java")); } // 刪除List中的元素 public void remove() { Course course1 = listCourses.get(4); Course course2 = listCourses.get(5); System.out.println("按對象刪除" + course1.getId() + "/" + course1.getName()); System.out.println("按位置刪除" + course2.getId() + "/" + course2.getName()); // 按位置刪除相應的元素 listCourses.remove(5); // 按對象刪除相應元素 listCourses.remove(course1); // 測試removeAll System.out.println("采用removeAll的方法刪除1,2位置"); Course[] courses = { listCourses.get(0), listCourses.get(1) }; listCourses.removeAll(Arrays.asList(courses)); foreach(); } public static void main(String[] args) { List<Course> list = new ArrayList<Course>(); ListTest listTest = new ListTest(list); listTest.add(); listTest.set(); listTest.get(); listTest.iterator(); listTest.foreach(); listTest.remove(); }}

1/數據結構 2/C語言 3/離散數學 4/匯編語言 5/高等數學 5/大學英語 調用set 調用get方法 2/C語言 1/Java 5/高等數學 6/大學英語 3/離散數學 4/匯編語言 通過迭代器訪問 2/C語言 1/Java 5/高等數學 6/大學英語 3/離散數學 4/匯編語言 調用foreach 2/C語言 1/Java 5/高等數學 6/大學英語 3/離散數學 4/匯編語言 按對象刪除3/離散數學 按位置刪除4/匯編語言 采用removeAll的方法刪除1,2位置 調用foreach 5/高等數學 6/大學英語

Set接口及其實現類——HashSet

-Set是元素無序并且不可以重復的集合,被稱為集 -HashSet——哈希集,是Set重要的實現類 -循環遍歷Set只能用foreach或者iterator -Set中添加某個對象無論多少次,都只會保留第一次添加的那個 -Set可以添加空對象

鏈接與圖片 代碼塊 分割線與刪除線 代碼塊與語法高亮 在需要高亮的代碼塊的前一行及后一行使用三個反引號“`”,同時第一行反引號后面表面代碼塊所使用的語言,如下:

public class SetTest { private List<Course> listCourses; public SetTest(List<Course> listCourses) { super(); this.listCourses = listCourses; } // 用于向課程集合中添加被選課程 public void add() { Course course1 = new Course("1", "數據結構"); listCourses.add(course1); Course temp = listCourses.get(0); System.out.println(temp.getId() + "/" + temp.getName()); Course course2 = new Course("2", "C語言"); /* * 在可以訪問的位置中插入數據,之前相應的數據位置往后移動一位 目前可訪問的位置為0 若試圖訪問其他位置則會發生數組下標越界異常 */ listCourses.add(0, course2); Course temp2 = listCourses.get(0); System.out.println(temp2.getId() + "/" + temp2.getName()); // 一次添加多個元素 Course[] courses = { new Course("3", "離散數學"), new Course("4", "匯編語言") }; // asList將數組轉換為集合 listCourses.addAll(Arrays.asList(courses)); Course temp3 = listCourses.get(2); System.out.println(temp3.getId() + "/" + temp3.getName()); Course temp4 = listCourses.get(3); System.out.println(temp4.getId() + "/" + temp4.getName()); Course[] courses2 = { new Course("5", "高等數學"), new Course("6", "大學英語") }; // 新添加的兩門課程從2處插入 listCourses.addAll(2, Arrays.asList(courses2)); Course temp5 = listCourses.get(2); System.out.println(temp5.getId() + "/" + temp5.getName()); Course temp6 = listCourses.get(3); System.out.println(temp5.getId() + "/" + temp6.getName()); } // 通過foreach遍歷List public void foreach() { System.out.println("調用foreach"); for (Course course : listCourses) { System.out.println(course.getId() + "/" + course.getName()); } } // foreach輸出所選課程 public void StudentForeach(Student student){ // 輸出學生所選課程,輸出順序不固定 for (Course course : student.getCourses()) { System.out.println(course.getId()+"/"+course.getName()); } } public static void main(String[] args) { List<Course> list = new ArrayList<Course>(); ListTest listCourses = new ListTest(list); SetTest setTest = new SetTest(list); setTest.add(); setTest.foreach(); // 創建一個學生對象 Set<Course> courses = new HashSet<Course>(); Student student = new Student("1","小明",courses); // 獲取鍵盤輸入的課程ID Scanner scanner = new Scanner(System.in); for (int i = 0; i < 3; i++) { System.out.println("請輸入課程ID"); String id = scanner.next(); for (Course course : setTest.listCourses) { if(course.getId().equals(id)){ student.getCourses().add(course); } } } setTest.StudentForeach(student); }}

1/數據結構 2/C語言 3/離散數學 4/匯編語言 5/高等數學 5/大學英語 調用foreach 2/C語言 1/數據結構 5/高等數學 6/大學英語 3/離散數學 4/匯編語言 請輸入課程ID 1 請輸入課程ID 2 請輸入課程ID 3 3/離散數學 2/C語言 1/數據結構


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石阡县| 漯河市| 高安市| 佛坪县| 遂宁市| 外汇| 江川县| 名山县| 郎溪县| 马尔康县| 普定县| 彭泽县| 通海县| 固始县| 兰西县| 白山市| 开平市| 丰台区| 施秉县| 靖江市| 湘乡市| 惠东县| 嘉义市| 乃东县| 凤翔县| 阿尔山市| 仁化县| 大港区| 汝南县| 舒兰市| 余江县| 江川县| 元氏县| 青川县| 新巴尔虎右旗| 尼玛县| 奉贤区| 通道| 轮台县| 衡阳县| 德令哈市|