## 集合框架
**課堂代碼:**
~~~java
package com.dodoke.demo6;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class CollectionStudy {
public static void main(String[] args) {
/**
* List<E>泛型 list = new ArrayList<E>();
*/
//對于集合的構建,底層使用是數組來構建集合,說明集合中保存的也是同種類型的數據
//List list = new ArrayList();//完成沒有使用泛型list集合的構建
List<Student> list = new ArrayList<Student>();//強制性的約束該集合中只能存放String類型的內容
Student xcl = new Student("徐春林","j12101",23);
Student lwx = new Student("陸文鑫","j12102",25);
Student ck = new Student("曹凱","j12103",23);
Student gjn = new Student("高峻楠","j12104",25);
//添加數據
list.add(xcl);
list.add(lwx);
list.add(ck);
list.add(gjn);
//刪除數據
list.remove(ck);//該方法屬于重載的方法。可以傳入對象名,也可以傳入集合中的索引
//list.remove(2);
//獲取數據(查詢)
Student xs = new Student("徐shuang","j12105",23);
list.add(xs);
Student obj = list.get(3);
//修改數據
obj.setName("徐爽");
System.out.println(list);
//此時完成對數據的四大基本操作:增刪改查
//對數據進行遍歷修改-for循環
for(int i = 0; i < list.size(); i++) {//size()返回集合長度
Student stu = list.get(i);
if(stu.getName().equals("高峻楠")) {
stu.setAge(23);
}
}
System.out.println(list);
//對數據進行遍歷修改-foreach循環
for(Student stu : list) {
if(stu.getName().equals("高峻楠")) {
stu.setAge(27);//要注意在集合中也是可以用foreach循環對集合內容進行修改
}
}
System.out.println(list);
//對集合進行遍歷刪除
/*for(int i = 0; i < list.size(); i++) {//size()返回集合長度
Student stu = list.get(i);
if(stu.getName().equals("陸文鑫")) {
list.remove(i);//這樣實現其實是有問題的
System.out.println(list.size());
}
}*/
//通常使用迭代器去對集合進行遍歷刪除
//step 1: 創建迭代器
Iterator<Student> it = list.iterator();
//step 2: 設置迭代內容的循環
while(it.hasNext()) {//hasNext()判斷是否迭代到最后一個元素
Student stu = it.next();//next()返回正在進行迭代的元素
if(stu.getName().equals("陸文鑫")) {
it.remove();//注意使用的是it,迭代器中的刪除方法。刪除之后,相應的會反饋到集合中
}
}
System.out.println(list);
}
}
~~~
~~~java
package com.dodoke.demo6;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapStudy {
public static void main(String[] args) {
/**
* Map<key,value> map = new HashMap<key,value>();
*/
Student xcl = new Student("徐春林","j12101",23);
Student lwx = new Student("陸文鑫","j12102",25);
Student ck = new Student("曹凱","j12103",23);
Student gjn = new Student("高峻楠","j12104",25);
Map<String, Student> map = new HashMap<String, Student>();//初始化完成map集合
//添加數據
//注意:為了保證數據能夠正確獲取,key的值必須是唯一的
map.put("j01", xcl);
map.put("j02", lwx);
map.put("j03", ck);
map.put("j04", gjn);//如果鍵值相同,那么后傳入的元素會覆蓋之前的元素
//獲取數據(使用get方法,傳入對應的鍵值)
System.out.println(map.get("j03"));
System.out.println("+++++++++++++++++++++++++");
//刪除數據
map.remove("j03");
//修改數據
Student obj = map.get("j04");
obj.setAge(23);
//遍歷map-采用foreach循環
Set<String> set = map.keySet();//keySet方法以set集合的形式返回map集合的key
System.out.println(set);
for(String key : set) {
System.out.println(map.get(key));
}
System.out.println("==============================");
//遍歷map-采用迭代器
//迭代key集合
Iterator<String> it = set.iterator();
while(it.hasNext()) {
String key = it.next();
//根據key獲取對應的value值
if(key.equals("j01")) {
it.remove();
}
}
System.out.println(map);
}
}
~~~
~~~java
package com.dodoke.demo6;
public class Student {
private String name;
private String code;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name, String code, int age) {
super();
this.name = name;
this.code = code;
this.age = age;
}
public Student() {
super();
}
@Override
public String toString() {
return "Student [name=" + name + ", code=" + code + ", age=" + age + "]";
}
}
~~~
- 課程開始
- 第一課20191008
- 第二課20191009
- HTML
- CSS
- CSS第一課
- CSS第二課
- CSS第三課
- CSS第四課
- CSS第五課
- JavaScript
- Js第一課
- Js第二課
- Js第三課
- Js第四課
- Js第五課
- Js第六課
- Js第七課
- Js-事件模型
- Js-2019-10-31-標準庫
- Js-2019-11-01- 標準庫
- Js-2019-11-01-Json
- Js-2019-11-01-對象的創建
- Js-2019-11-04-this的使用
- Js-2019-11-05-storage與異常
- Js-2019-11-05-BOM與補充知識點
- Js-2019-11-06-正則表達式和計時器
- jQuery
- jQuery-2019-11-13-初識jQuery
- jQuery-2019-11-14-jQuery節點操作
- jQuery-2019-11-15-jQuery節點操作二
- jQuery-2019-11-16-jQuery效果與動畫
- Java
- Java-2019-11-27-變量直接量數據格式運算符
- Java-2019-11-28-流程控制
- Java-2019-12-02-數組
- Java-2019-12-04 面向對象
- Java-2019-12-05-封裝
- Java-2019-12-06-深入構造器
- Java-2019-12-09-繼承
- Java-2019-12-10-多態
- Java-2019-12-10-包裝類
- Java-2019-12-11-final修飾符
- Java-2019-12-11-包裝類
- Java-2019-12-11-接口
- java-2019-12-13-設計模式
- Java-2019-12-16-集合框架
- Java-2019-12-18-集合排序
- Java-2019-12-23-常用類學習
- Java-2019-12-25-異常處理
- Java-2019-12-31-內部類詳解