集合和數組關係?java
1) 集合是一種容器,能夠存儲多個數據.數組
2) 數組的長度是固定的,集合的長度是可變的.併發
3) 集合中存儲的元素必須爲引用類型數據,初始值爲NULLide
ArrayList集合類spa
ArrayList<E>集合:大小可變數組的實現設計
<E>:是一種特殊的數據類型,泛型(泛型,用來將數據類型,做爲參數進行傳遞.)對象
在出現 E 的地方咱們使用引用數據類型替換便可索引
舉例:ArrayList<String>,ArrayList<Student>接口
構造方法: ArrayList()element
成員方法:
l public booleanadd(E e):添加元素
l public voidadd(int index,E element):在指定的索引處添加元素
集合元素增刪改查舉例:
import java.util.ArrayList;
publicclass demo_11 {
publicstaticvoid main(String[] args) {
ArrayList<String>list = new ArrayList<String>();
// 添加元素:
list.add("hello");// 添加helloworld
list.add("world");
// 獲取元素
list.get(0); // 獲取第1個元素
// 集合的長度(元素個數)
list.size(); // 獲取元素個數
// 刪除元素
list.remove(1);// 刪除第二個元素world
// 修改元素
list.set(0, "modify"); // 將hello改成modify;
System.out.println(list); // 輸出結果爲modify
//遍歷獲取每個元素最標準的用法
for(inti=0;i<list.size();i++){
String s =list.get(i);
System.out.println(s);
}
}
}
集合元素功能方法:
1) 判斷比較
s1.equals(s2) 比較字符串的內容是否相同
s1equalsIgnoreCase(String s2):比較字符串的內容是否相同,忽略大小寫
s1 startsWith(Stringstr):判斷字符串對象是否以指定的 str 開頭
s1 endsWith(String str):判斷字符串對象是否以指定的 str 結尾
獲取功能方法
int length():獲取字符串的長度,其實也就是字符個數
char charAt(int index):獲取指定索引處的字符
int indexOf(String str):獲取 str 在字符串對象中第一次出現的索引,沒有返回-1
String substring(int start):從 start 開始截取字符串到字符串結尾
String substring(int start,intend):從 start 開始,到 end 結束截取字符串;包括 start,不包括 end
轉換功能方法
char[] toCharArray():把字符串轉換爲字符數組
String s = "abcde";//定義一個字符串
char[] chs = s.toCharArray(); //字符串轉換爲字符數組
System.out.println(chs[2]);
String toLowerCase():把字符串轉換爲小寫字符串
String toUpperCase():把字符串轉換爲大寫字符串
String[] split(String str)按照指定符號分割字符串
Iterator迭代器
l 集合的iterator方法,因此單列集合實現類均有該方法
l iterator方法的返回值類型Iterator接口類型
l Iterator接口的兩個方法:hasNext與next方法
注意:在使用迭代過程當中不要爲集合添加/刪除數據,防止併發異常.
三種方法遍歷: 普通for 循環,迭代器,以及增強for循環遍歷
泛型
1. 含有泛型的類:
1) 定義格式:修飾符 class 類名<表明泛型的變量> { }
2) 使用格式:建立對象時,肯定泛型的類型
2. 含有泛型的方法:
1) 定義格式:修飾符 <表明泛型的變量> 返回值類型方法名(參數){ }
2) 使用格式:調用方法時,肯定泛型的類型
3. 含有泛型的接口:
1) 定義格式:修飾符 interface接口名<表明泛型的變量> { }
使用格式:
2) 定義類時肯定泛型的類型
3) 始終不肯定泛型的類型,直到建立對象時,肯定泛型的類型
l 將運行時期的ClassCastException,轉移到了編譯時期變成了編譯失敗
l 避免了類型強轉的麻煩
ArrayList 不是惟一的集合:
ü TreeSet 以有序狀態保持並能夠防止重複
ü HashMap 能夠成對的name/value來保存與取出
ü LinkedList 針對常常插入或者刪除元素所設計的高效率集合
ü HashSet 防止重複的集合,能夠快速找尋相符的元素.
ü LinkedHashMap能夠記住元素插入順序,也能夠設定成依照上次元素存儲的前後順序