大家可以關註作者的賬號,關註從零開始學Java筆記文集。也可以根據目錄前往作者的博客園博客進行學習。本片文件將基於黑馬程式員就業班視頻進行學習以及資料的分享,並記錄筆記和自己的看法。歡迎大家一起學習和討論。 "【從零開始學Java筆記】目錄" 集合的體繫結構 由於不同的數據結構(數據的組織,存儲方式 ...
大家可以關註作者的賬號,關註從零開始學Java筆記文集。也可以根據目錄前往作者的博客園博客進行學習。本片文件將基於黑馬程式員就業班視頻進行學習以及資料的分享,並記錄筆記和自己的看法。歡迎大家一起學習和討論。
【從零開始學Java筆記】目錄
集合的體繫結構
由於不同的數據結構(數據的組織,存儲方式),所以Java為我們提供了不同的集合,但是不同的集合他們的功能都是相似,不斷怕向上提取,將共性抽取出來,這就是集合體繫結構形成的原因
體繫結構:
怎麼學習?最頂層開始學習,因為最項層包含了所有的共性
怎麼使用?使用最底層,因為最底層就是具體的實現
Collection -> List -> ArrayList
Collection類
Collection類的常用功能
- boolean add(E e)
void clear()
boolean contains(Object o)
boolean isEmpty()
boolean remove(Object o)
int size()
Object[] toArray()
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo {
public static void main(String[] args) {
//創建集合對象
//Collection c = new Collection();//Collection是介面,不能實例化
Collection c = new ArrayList();//多態,父類引用指向子類對象
//boolean add(E e)
System.out.println(c.add("hello"));//永遠可以添加成功,因為ArrayList他允許重覆
System.out.println(c.add("world"));
//void clear():清空集合
//c.clear();
//boolean contains(Object o) :判斷集合中是否包含指定元素
//System.out.println(c.contains("java"));
//boolean isEmpty() :是否為空
//System.out.println(c.isEmpty());
//boolean remove(Object o) :刪除元素
//System.out.println(c.remove("java"));
//int size() :返回集合中的元素個數
//System.out.println(c.size());
//Object[] toArray() :將集合轉換成一個Object類型的數組
Object[] objs = c.toArray();
for (int i = 0; i < objs.length; i++) {
System.out.println(objs[i]);
}
System.out.println(c);
}
}
集合的遍歷方式
1.toArray(),可以把集合轉換成數組,然後遍曆數組即可
2.iterator(),可以返回一個迭代器對象,我們可以通過迭代器對象來迭代集合
3.foreach方法
4.不能用for迴圈,因為Collection類沒有索引,但是Colletion的子類可以,因為他們有索引
Iterator:可以用於遍歷集合
-
E next() :返回下一個元素
註意:Exception in thread "main" java.util.NoSuchElementException使用next方法獲取下一個元素,如果沒有元素可以獲取,則出現NoSuchElementException
-
boolean hasNext() :判斷是否有元素可以獲取
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class InterationDemo {
public static void main(String[] args) {
// method();
// method1();
}
private static void method1() {
//創建集合對象
Collection c = new ArrayList();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
//獲取迭代器對象
Iterator it = c.iterator();
//Object next() :返回下一個元素
//boolean hasNext() :判斷是否有元素可以獲取
while(it.hasNext()) {
System.out.println(it.next());
}
}
private static void method() {
//創建集合對象
Collection c = new ArrayList();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
//獲取數組
Object[] objs = c.toArray();
//遍曆數組
for (int i = 0; i < objs.length; i++) {
System.out.println(objs[i]);
}
}
}
List類
List的特點
- 有序的(存儲和讀取的順序是一致的)
有整數索引
允許重覆的
List的特有功能(增刪改查)
- void add(int index, E element)
E get(int index)
E remove(int index)
E set(int index, E element)
import java.util.ArrayList;
import java.util.List;
public class ListDemo {
public static void main(String[] args) {
//創建的列表對象
List list = new ArrayList();
//void add(int index, E element) : 在指定索引位置添加指定元素
list.add(0, "hello");
list.add(0, "world");
list.add(1, "java");
//E get(int index) :根據索引返回元素
//遍歷
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("-----------------");
//E remove(int index) : 刪除指定元素並返回
System.out.println(list.remove(2));
System.out.println("-----------------");
//E set(int index, E element) : 將指定索引位置的元素替換為指定元素,並將原先的元素返回
System.out.println(list.set(0, "android"));
System.out.println(list);
}
}
輸出結果
world
java
hello
-----------------
hello
-----------------
world
[android, java]
List的子類
List的常用子類:
ArrayList:底層是數組結構,查詢快,增刪慢
L inkedList:底層結構是鏈表,查詢慢,增刪快
如何選擇使用不同的集合?
如果查詢多,增刪少,則使用ArrayList
如果查詢少,增刪多,則使用LinkedList
LinkedList的特有功能
- void addFirst(E e)
void addLast(E e)
E getFirst()
E getLast()
E removeFirst()
E removeLast()
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add("hello");
list.add("world");
System.out.println(list);
System.out.println("-----------------");
// void addFirst(E e) :將元素添加到索引為0的位置
// void addLast(E e) :將元素添加到索引為size()-1的位置
list.addFirst("java");
list.addLast("android");
System.out.println(list);
System.out.println("-----------------");
// E getFirst() :獲取索引為0的元素
// E getLast() :獲取索引為size()-1的元素
System.out.println(list.getFirst());
System.out.println(list.getLast());
System.out.println("-----------------");
// E removeFirst() :刪除索引為0的元素並返回
// E removeLast() :刪除索引為size()-1的元素並返回
System.out.println(list.removeFirst());
System.out.println(list.removeLast());
System.out.println(list);
System.out.println("-----------------");
}
}
輸出結果
[hello, world]
-----------------
[java, hello, world, android]
-----------------
java
android
-----------------
java
android
[hello, world]
-----------------
ArrayList類
集合類的特點:長度可變
ArrayList
構造方法
ArrayList<String> array = new ArrayL ist<String>();
成員方法
添加元素
public boolean add(E e) :添加元素
public void add(int index,E element) :在指定的索引處添加一個元素
獲取元素
public E get(int index) :返回指定索引處的元素
集合長度
public int size( ):返回集合中的元素的個數
刪除元素
public boolean remove(0bject o) :冊餘指定的元素,返回刪除是否成功
public E remove(int index) :刪除指定索引處的元素,返回被刪除的元素
修改元素
public E set(int index,E element ) :修改指定索引處的元素,返回被修改的元素
這裡簡單舉個例子,就是老生常談的學生管理系統。但是由於篇幅較長,就不在這裡寫了,具體請在相應章節博客尋找。