集合體系結構
Collection 單列集合 Map 雙列集合
Collection
1.List
1.ArrayList
2.LinkedList
3.Vector
2.Set
1.HashSet
1.LinkedHashSet
2.TreeSet
其中Collection,List,Set 為接口,其余為實現類。
List系列集合:添加的元素是有序,可重復,有索引
Set系列集合:添加的元素是無序,不可重復,無索引
Collection是單列集合的祖宗接口,它的功能是全部單列集合都可以繼承的。
public boolean add(E e) ? ?把給定對象添加到集合中
public void clear() ? ? ? 清空集合中所有元素
public boolean remove(E e) ? 把給定的目標在當前集合中刪除
public boolean contains(Object obj) ? ?判斷當前集合中是否包含給定對象
public boolean isEmpty() ? ? 判斷當前集合是否為空
public int size() ? ? ?返回集合中的元素個數/集合長度 ? ? ? ? ? ?
注意點:Collection是一個接口,不能直接創建他的對象,所以在學習他的方法時,只能創建他的實現類的對象。
1.添加元素
public class Collection{public static void main(String[]args){Collection<String> coll=new ArrayList<>();coll.add("aaa");System.out.println(coll);//[aaa]} }
返回值細節:
1.如果我們在往List系列集合中添加數據,那么永遠返回true,因為List系列的元素是可重復的。
2.如果我們往Set系列集合中添加數據,如果當前添加的數據不存在則返回值為true,如果數據已經存在則返回值為false,因為Set系列集合是不允許重復的。
2.清空元素
public class Collection{public static void main(String[]args){Collection<String> coll=new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.clear();System.out.println(coll);//[]} }
3.刪除元素
public class Collection{public static void main(String[]args){Collection<String> coll=new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");coll.remove("aaa");System.out.println(coll);//[bbb ccc]} }
方法會有一個布爾類型的返回值,刪除成功返回true,刪除失敗返回false
如果要刪除的元素不存在則刪除失敗
4.判斷元素是否包含
public class Collection{public static void main(String[]args){Collection<String> coll=new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");coll.remove("aaa");boolean result=coll.contains("aaa");System.out.println(result);//false} }
contains方法底層是依賴equals方法進行判斷是否存在,所以如果集合存在自定義對象,也想通過contains進行判斷是否存在,那么需要在javabean中重寫equals方法。
public class Student{private String name;private int age;public Student(){}public Student(String name,int age){this.name=name;this.age=age;}public String getName(){return this.name;}public int getAge(){return this.age;}public void setName(String name){this.name=name;}public void setAge(int age){this.age=age;}}
import java.util.Collection; ? public class Collection{public static void main(String[]args){//1.創建集合對象Collection<String> coll=new ArrayList<>();//2.創建三個學生對象Student s1=new Student("zhangsan",23);Student s2=new Student("lisi",24);Student s3=new Student("wanwu",25);//3.把學生對象添加到集合中coll.add(s1);coll.add(s2);coll.add(s3);//4.判斷集合中某一個學生對象是否存在Student s4=new Student("zhangsan",23);//如果同姓名同年齡,就認為是同一個學生System.out.println(coll.conains(s4));//false//這里返回值為false,contains方法用equals方法判斷對象是否一致//如果是自定義對象,沒有重寫equals方法,那么默認使用Object類中的equals方法進行判斷//Object類中的equals是依賴地址值進行判斷的//所以要在自定義的javabean中重寫equals類//重寫之后System.out.println(coll.contains(s4));//true} }
public class Student{private String name;private int age;public Student(){}public Student(String name,int age){this.name=name;this.age=age;}public String getName(){return this.name;}public int getAge(){return this.age;}public void setName(String name){this.name=name;}public void setAge(int age){this.age=age;}//equals重寫public boolean equals(Object o){if(this==o){return true;}if(o==null||getClass()!=o.getClass()){return false;}Student student=(Student) o;return age==student.age &&Object.equals(name,student.name);}}
5.判斷集合是否為空
public class Collection{public static void main(String[]args){Collection<String> coll=new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");boolean result=coll.isEmpty();System.out.println(result);//false} }
6.獲取集合長度
public class Collection{public static void main(String[]args){Collection<String> coll=new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");int size=coll.size();System.out.println(size);//3} }