Java:Collection集合、泛型
1)、集合是一個裝”引用型別”的”容器”
2)、Java內部提供了很多”集合類”,每種集合類對元素的儲存採用了不同的”資料結構”–集合儲存資料的方式。
3)、這些資料結構都是各有千秋,有的增刪快,查詢慢;有的增刪慢,查詢快
4)、常用資料結構:
1)、陣列:ArrayList(增刪慢,查詢快,常用於查詢)
2)、連結串列:LinkedList(增刪快,查詢慢,常用於運算元據)
3)、雜湊表:HashSet(增刪改查都快,但每次都要生成雜湊值)
……
5)、集合體系
1)、新增
public boolean add(E e): 把給定的物件新增到當前集合中 。
ArrayList會永遠返回true;
set中新增重複元素時,返回false;
2)、刪除
public void clear() :清空集合中所有的元素。
public boolean remove(E e): 把給定的物件在當前集合中刪除。
當移除多個相同元素,只移除遇到的第一個
3)、判斷
public boolean contains(E e): 判斷當前集合中是否包含給定的物件。
public boolean isEmpty(): 判斷當前集合是否為空。
4)、獲取
public int size(): 返回集合中元素的個數。
public Object[] toArray(): 把集合中的元素,儲存到陣列中。
5)、遍歷
public Iterator iterator():獲取一個迭代器
public Iterator iterator(): 獲取集合對應的迭代器,用來遍歷集合中的元素的。
1)、public boolean hasNext():如果仍有元素可以迭代,則返回 true。
2)、public E next():返回迭代的下一個元素。
publicstaticvoidmain(String[] args) {
Collection list =newArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
System.out.println(list);
Iterator iterable = list.iterator();while(iterable.hasNext()){
System.out.println(iterable.next());
}
}
1)、增強for也叫:foreach迴圈,是一種for迴圈的新寫法;
2)、使用增強for可以遍歷陣列、集合:
1)、陣列:
int[] arr = {1,2,3,4,5,6};for(int i = 0; i < arr.length ; i++){
int n = arr[i];
System.out.println(n);
}//增強forfor(int n:arr){//底層編譯為:普通for迴圈 System.out.println(n);
}
2)、集合:
ArrayList list =newArrayList<>();
//增強forfor(String str:list){
//底層編譯為:迭代器System.out.println(str);
}
1)、ArrayList list = new ArrayList<>();
String就是這個集合的泛型
集合中只允許寫入泛型的型別資料
2)、泛型的好處:可以讓編譯器幫助我們監視,只能向集合中新增指定的型別
泛型定義說明:
1)、中的E:可以是大寫、小寫、字元、多個字元;
2)、類中的方法可以使用這個型別名
class Student<E>{
public void add(E e){}
public E get(){return null;}
}
測試類:
Student<引用型別> stu = new Student<>();
stu.add(引用型別 物件名);
stu.get();//返回對應的引用型別
public classStudent{ public <E> void sum(E e1,E e2,E e3,E e4){//定義一個接收4個相同的值 System.out.println("e1 = "+e1);
System.out.println("e2 = "+e2);
System.out.println("e3 = "+e3);
System.out.println("e4 = "+e4);
}
}
測試類:
public static void main(String[] args) {
Student student = new Student();
student.<Integer>sum(1,2,3,4);//規定4個值的泛型為Integer
student.<String>sum("aaa","bbb","ccc","ddd");//String
}
同泛型類:
public interfaceIA{
public void add(E e);
}
1)、定義一個方法,方法的引數:任何泛型的集合
**
class Demo{
public static void main(String[] args){
ArrayList<String> list1 = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
ArrayList<Student> list3 = new ArrayList<>();
p1(list1);//OK的 p1(list2);//OK的 p1(list3);//OK的 p1("呵呵");//錯誤 }
public static void p1(ArrayList<?> list){
}
}
2)、定義一個方法,方法的引數:一個類和他的子類做泛型的集合(
class Person{}
class Student extends Person{}
class JavaStudent extends Student{}
測試類:
class Demo{
public static void main(String[] args){
ArrayList<Person> list1 = new ArrayList<>();
ArrayList<Student> list2 = new ArrayList<>();
ArrayList<JavaStudent> list3 = new ArrayList<>();
p1(list1);//錯誤 p1(list2);//OK的 p1(list3);//OK的 }
public static void p1(ArrayList<? extends Student> list){}
}
3)、定義一個方法,方法的引數:一個類和他的父類做泛型的集合(
class Demo{
public static void main(String[] args){
ArrayList<Person> list1 = new ArrayList<>();
ArrayList<Student> list2 = new ArrayList<>();
ArrayList<JavaStudent> list3 = new ArrayList<>();
p1(list1);//OK的 p1(list2);//OK的 p1(list3);//錯誤 }
public static void p1(ArrayList<? super Student> list){}
}
[ ] 能夠說出集合與陣列的區別
1、集合的長度是可變的,集合可以存放引用型別
2、陣列的長度是有限的,陣列可以存放任意型別
[ ] 說出Collection集合的常用功能
.add(E e):向集合中新增元素
.clear():將集合清空
.remove(E e):清除集合中的特定元素
.contains(E e):查詢集合中是否有這個元素,返回boolean
.isEmpty();檢查集合是否為空,為空返回true
.size():返回集合的長度
.toArray():將集合轉化為陣列返回
[ ] 能夠使用迭代器對集合進行取元素
Iterator i = list.iterator;
i.hasNext():檢查集合中下一個是否有元素
i.Next():返回集合中的資料
[ ] 能夠說出集合的使用細節
[ ] 能夠使用集合儲存自定義型別
[ ] 能夠使用foreach迴圈遍歷集合
ArrayList<資料型別> list = new ArrayList<>();
for(資料型別 物件名:list){遍歷}
[ ] 能夠使用泛型定義集合物件
[ ] 能夠理解泛型上下限
[ ] 能夠闡述泛型萬用字元的作用
作者:煙火式Java
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2815308/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java集合 Collection、Set、Map、泛型 簡要筆記Java泛型筆記
- Java集合和泛型Java泛型
- Java集合-CollectionJava
- Java 集合列舉泛型(一)Java泛型
- Java反射給泛型集合賦值Java反射泛型賦值
- 泛型集合 list泛型
- 泛型集合 Queue泛型
- Java Collection集合面試題Java面試題
- Swift之集合型別 (Collection Types)(集合篇)Swift型別
- Java入門教程十二(集合與泛型)Java泛型
- Java 中的泛型 集合(List,Set) MapJava泛型
- 集合框架-引入泛型框架泛型
- c#泛型集合C#泛型
- Java Collection介面 ArrayList集合(容器)Java
- Java 的 Collection 與 List 集合Java
- Java Collection、Map集合總結Java
- Java進階學習之集合與泛型(1)Java泛型
- 07.集合和泛型泛型
- C# 泛型集合SortedListC#泛型
- Java 集合深入理解(3):CollectionJava
- 【Java集合】單列集合Collection常用方法詳解Java
- 集合框架-Collection集合框架
- 【java】【泛型】泛型geneticJava泛型
- java泛型之泛型方法。Java泛型
- 泛型方法、初始集合和集合的遍歷泛型
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- 集合框架-Collection集合-2框架
- 集合框架-Collection集合-3框架
- JAVA集合詳解(Collection和Map介面)Java
- ajax 提交陣列 泛型集合陣列泛型
- 【ITOO】--陣列、集合、泛型解析陣列泛型
- Day22 集合,ArrayList,泛型泛型
- java泛型之泛型陣列。Java泛型陣列
- Why Swift? Generics(泛型), Collection(集合型別), POP(協議式程式設計), Memory Management(記憶體管理)Swift泛型型別協議程式設計記憶體
- Java 泛型Java泛型
- Java泛型Java泛型
- Java中如何使用泛型實現介面中的列表集合?Java泛型
- 集合框架-Collection集合總結框架