List介面及其子類的特點和遍歷方式

2021-09-25 09:27:23 字數 3213 閱讀 7772

list的子類特點:

arraylist:

底層資料結構是陣列,查詢快,增刪慢

執行緒不安全,效率高

vector:

底層資料結構是陣列,查詢快,增刪慢

執行緒安全,效率底

linkedlist:

底層資料結構是鍊錶,查詢慢,增刪快

執行緒不安全,效率高

案例:使用list的任意子類儲存字串或者儲存自定義物件並遍歷

arraylist的使用。

儲存字串並遍歷。

public class arraylistdemo 

system.out.println("---------------");

for(int x = 0;xa:vector類概述: vector 類可以實現可增長的物件陣列 , vector 是同步的。

b:vector類特有功能

public void addelement(e obj)

public e elementat(int index)

public enumeration elements()

c:案例演示: vector的特有功能演示

a:vector類概述: vector 類可以實現可增長的物件陣列 , vector 是同步的。

b:vector類特有功能

public void addelement(e obj)

public e elementat(int index)

public enumeration elements()

c:案例演示: vector的特有功能演示

a:linkedlist類概述: list 介面的鏈結列表實現 , 此實現不是同步的

b:linkedlist類特有功能

public void addfirst(e e)及addlast(e e)

public e getfirst()及getlast()

public e removefirst()及public e removelast()

c:案例演示

linkedlist的特有功能演示

注意:linkedlist 底層資料結構是鍊錶,查詢慢,增刪塊,執行緒不安全,效率高

linkedlist linkedlist = new linkedlist();

linkedlist.add("哈哈1");

linkedlist.add("哈哈2");

linkedlist.add("哈哈3");

linkedlist.add("哈哈4");

linkedlist.add("哈哈5");

linkedlist.add("哈哈6");

object pop = linkedlist.pop();

object pop1 = linkedlist.pop();

system.out.println(pop);

system.out.println(pop1);

system.out.println(linkedlist);

linkedlist.push("hahaha111");

linkedlist.push("hahaha3222");

system.out.println(linkedlist);

}}

1 /*

2 *需求:請用linkedlist模擬棧資料結構的集合,並測試

3 *建立乙個類將linked中的方法封裝

4 */

5 public class demo4_linkedlist

15 }

16 }

3 public class stack

11 12 public object out()

15 16 public boolean isempty()

:案例演示

需求:arraylist去除集合中字串的重複值(字串的內容相同)

思路:建立新集合方式

public class demo01_arraylist
* 建立新集合將重複元素去掉

* 1.明確返回值型別,返回arraylist

* 2.明確引數列表arraylist

* * 分析:

* 1.建立新集合

* 2.根據傳入的集合(老集合)獲取迭代器

* 3.遍歷老集合

* 4.通過新集合判斷是否包含老集合中的元素,如果包含就不新增,如果不包含就新增

public static arraylist getsingle(arraylist list) 

} return newlist;

}}

a:案例演示

需求:arraylist去除集合中自定義物件元素的重複值(物件的成員變數值相同)

b:注意事項

重寫equals()方法

public void setname(string name) 

public int getage()

public void setage(int age)

@override

public string tostring()

@override

public boolean equals(object obj)

return false;

}}```

```public class person

public string getname()

泛型概述:是一種把型別明確的工作

推遲到建立物件

或者呼叫方法的時候才去明確的特殊的型別。

引數化型別,把型別當作引數一樣的傳遞。

泛型的格式 : 《資料型別》 這裡的資料型別只能是引用資料型別

泛型好處

(1): 把執行時期的問題提前到了編譯期間

(2): 避免了強制型別轉換

(3):優化了程式設計,解決了黃色警告線

注意:泛型只在編譯期有效 但在執行期就擦除了

泛型基本使用

把型別明確工作,推遲到建立物件,或呼叫方法時,才去明確的一種機制

public class mytest2

List子類特點和Set子類特點

list的三個子類有vector,arraylist,linkedlist 特點 有序,可重複,有索引可以使用普通for迴圈遍歷 arraylist 底層資料結構是陣列,查詢快,增刪慢,執行緒不安全,效率高 vector 底層資料結構是陣列,查詢快,增刪慢,執行緒安全,效率低 linkedlist ...

Set 介面常用子類及其特點

set 集合中元素不可重複,是無序的 存入和取出的順序是不一樣的 set 介面中的方法和 collection 介面一致.常用子類 treeset 可以對 set 集合中的元素進行排序,是不同步的.雜湊表如何確定元素是否相同?判斷兩個元素的雜湊值是否相同,其實判斷的是物件的 hashcode 方法 ...

List的子類特點

1 list 面試題 list的子類特點 23 arraylist 4底層資料結構是陣列,查詢快,增刪慢.5執行緒不安全,效率高6 vector 7 底層資料結構是陣列,查詢快,增刪慢.8 執行緒安全,效率低 9linkedlist 10底層資料結構是鍊錶,查詢慢,增刪快.11執行緒不安全,效率高....