【從零開始學Java筆記】ArrayList類、Collection…

2020-04-07 16:06:35來源:博客園 閱讀 ()

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

【從零開始學Java筆記】ArrayList類、Collection類和List類

大家可以關注作者的賬號,關注從零開始學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:大小可變數組的實現,:是一種特殊的數據類型,泛型。在出現E的地方我們使用引用數據類型替換即可,例如: ArrayL ist , ArrayL ist

構造方法

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 ) :修改指定索引處的元素,返回被修改的元素

這里簡單舉個例子,就是老生常談的學生管理系統。但是由于篇幅較長,就不在這里寫了,具體請在相應章節博客尋找。


原文鏈接:https://www.cnblogs.com/zllk/p/12656898.html
如有疑問請與原作者聯系

標簽:順序目錄文件學習AV循環

版權申明:本站文章部分自網絡,如有侵權,請聯系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有

上一篇:【從零開始學Java筆記】Set類和Map類

下一篇:【從零開始學Java筆記】IO流

韩国三级在线看免费