日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java List接口概述

發布時間:2025/3/15 java 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java List接口概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

List接口概述

  • 鑒于Java中數組用來存儲數據的局限性,我們通常使用List替代數組
  • List集合類中元素有序、且可重復,集合中的每個元素都有其對應的順序索引。
  • List容器中的元素都對應一個整數型的序號記載其在容器中的位置,可以根據
    序號存取容器中的元素。
  • JDK API中List接口的實現類常用的有:ArrayList、LinkedList和Vector。

List接口方法

List除了從Collection集合繼承的方法外,List 集合里添加了一些根據索引來
操作集合元素的方法。

  • void add(int index, Object ele):在index位置插入ele元素
  • boolean addAll(int index, Collection eles):從index位置開始將eles中
    的所有元素添加進來
  • Object get(int index):獲取指定index位置的元素
  • int indexOf(Object obj):返回obj在集合中首次出現的位置
  • int lastIndexOf(Object obj):返回obj在當前集合中末次出現的位置
  • Object remove(int index):移除指定index位置的元素,并返回此元素
  • Object set(int index, Object ele):設置指定index位置的元素為ele
  • List subList(int fromIndex, int toIndex):返回從fromIndex到toIndex
    位置的子集合

List實現類之一:ArrayList

  • ArrayList 是 List 接口的典型實現類、主要實現類
  • 本質上,ArrayList是對象引用的一個”變長”數組
  • ArrayList的JDK1.8之前與之后的實現區別?
    ->JDK1.7:ArrayList像餓漢式,直接創建一個初始容量為10的數組
    ->JDK1.8:ArrayList像懶漢式,一開始創建一個長度為0的數組,當添加第一個元
    素時再創建一個始容量為10的數組
  • Arrays.asList(…) 方法返回的 List 集合,既不是 ArrayList 實例,也不是
    Vector 實例。 Arrays.asList(…) 返回值是一個固定長度的 List 集合

List實現類之二:LinkedList

對于頻繁的插入或刪除元素的操作,建議使用LinkedList類,效率較高
新增方法

  • void addFirst(Object obj)
  • void addLast(Object obj)
  • Object getFirst()
  • Object getLast()
  • Object removeFirst()
  • Object removeLast()

LinkedList:雙向鏈表,內部沒有聲明數組,而是定義了Node類型的first和last,
用于記錄首末元素。同時,定義內部類Node,作為LinkedList中保存數據的基
本結構。Node除了保存數據,還定義了兩個變量:

  • prev變量記錄前一個元素的位置
  • next變量記錄下一個元素的位置
雙向鏈表結構圖

List 實現類之三:Vector

Vector 是一個古老的集合,JDK1.0就有了。大多數操作與ArrayList
相同,區別之處在于Vector是線程安全的。

在各種list中,最好把ArrayList作為缺省選擇。當插入、刪除頻繁時,
使用LinkedList;Vector總是比ArrayList慢,所以盡量避免使用

新增方法:

void addElement(Object obj)
void insertElementAt(Object obj,int index)
void setElementAt(Object obj,int index)
void removeElement(Object obj)
void removeAllElements()

ArrayList/LinkedList/Vector的異同

ArrayList和LinkedList的異同
二者都線程不安全,相對線程安全的Vector,執行效率高。
此外,ArrayList是實現了基于動態數組的數據結構,LinkedList基于鏈表的數據結構。對于
隨機訪問get和set,ArrayList覺得優于LinkedList,因為LinkedList要移動指針。對于新增
和刪除操作add(特指插入)和remove,LinkedList比較占優勢,因為ArrayList要移動數據。
ArrayList和Vector的區別
Vector和ArrayList幾乎是完全相同的,唯一的區別在于Vector是同步類(synchronized),屬于
強同步類。因此開銷就比ArrayList要大,訪問要慢。正常情況下,大多數的Java程序員使用
ArrayList而不是Vector,因為同步完全可以由程序員自己來控制。Vector每次擴容請求其大
小的2倍空間,而ArrayList是1.5倍。Vector還有一個子類Stack

package BaiYSTest1;import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List;/** list接口方法* List除了從Collection集合繼承的方法外,List 集合里添加了一些根據索引來操作集合元素的方法。 ?* void add(int index, Object ele):在index位置插入ele元素 ? boolean addAll(int index, Collection eles):從index位置開始將eles中的所有元素添加進來 ? Object get(int index):獲取指定index位置的元素 ? int indexOf(Object obj):返回obj在集合中首次出現的位置 ? int lastIndexOf(Object obj):返回obj在當前集合中末次出現的位置 ? Object remove(int index):移除指定index位置的元素,并返回此元素 ? Object set(int index, Object ele):設置指定index位置的元素為ele ? List subList(int fromIndex, int toIndex):返回從fromIndex到toIndex位置的子集合總結:常用方法增:add(Object obj)刪:remove(int index) / remove(Object obj)改:set(int index,Object obj);查:get(int index)插:add(int index,Object obj)長度:size()遍歷 1:Iterator迭代器方法2:增強for循環3:普通for循環*/ public class ListTest {public static void main(String[] args) {ArrayList al = new ArrayList();//添加元素al.add(123);al.add(456);al.add("BB");al.add("CC");al.add(new Person("Tom",23));//void add(int index, Object ele):在index位置插入ele元素al.add(2, "HH");System.out.println(al);//boolean addAll(int index, Collection eles)://從index位置開始將eles中的所有元素添加進來List al1 = Arrays.asList(1,2,4);al.addAll(2, al1);System.out.println(al);//Object get(int index):獲取指定index位置的元素System.out.println(al.get(2));//int indexOf(Object obj):返回obj在集合中首次出現的位置System.out.println(al.indexOf(456));//int lastIndexOf(Object obj):返回obj在當前集合中末次出現的位置System.out.println(al.lastIndexOf("CC"));//Object remove(int index):移除指定index位置的元素,并返回此元素System.out.println(al.remove(3));//Object set(int index, Object ele):設置指定index位置的元素為eleSystem.out.println(al.set(2, "MM"));//List subList(int fromIndex, int toIndex)://返回從fromIndex到toIndex位置的子集合List list1 = al.subList(3, 5);System.out.println(list1);//遍歷方法一Iterator it = al.iterator();while(it.hasNext()){System.out.println(it.next());}System.out.println("*******************");//遍歷方法二for(Object obj:al){System.out.println(obj);}System.out.println("*******************");//遍歷方法三for(int i =0;i<al.size();i++){System.out.println(al.get(i));}} } 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的Java List接口概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。