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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

List集合与List的子类

發(fā)布時(shí)間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 List集合与List的子类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

掌握了Collection接口的使用后,再來(lái)看看Collection接口中的子類(lèi),他們都具備那些特性呢?

Collection中的常用幾個(gè)子類(lèi)(java.util.List集合、java.util.Set集合


List接口介紹

List接口特點(diǎn):

  • 它是一個(gè)元素存取有序的集合。例如,存元素的順序是11、22、33。那么集合中,元素的存儲(chǔ)就是按照11、22、33的順序完成的。

  • 它是一個(gè)帶有索引的集合,通過(guò)索引就可以精確的操作集合中的元素(與數(shù)組的索引是一個(gè)道理)。

  • 集合中可以有重復(fù)的元素,通過(guò)元素的equals方法,來(lái)比較是否為重復(fù)的元素。

  • 注:List接口的子類(lèi)java.util.ArrayList類(lèi),該類(lèi)中的方法都是來(lái)自List中定義

    java.util.List接口 extends Collection接口
    ? ? List接口的特點(diǎn):
    ? ? ? ? 1.有序的集合,存儲(chǔ)元素和取出元素的順序是一致的(存儲(chǔ)123 取出123)
    ? ? ? ? 2.有索引,包含了一些帶索引的方法
    ? ? ? ? 3.允許存儲(chǔ)重復(fù)的元素

    ? ? List接口中帶索引的方法(特有)
    ? ? ? ? - public void add(int index, E element): 將指定的元素,添加到該集合中的指定位置上。
    ? ? ? ? - public E get(int index):返回集合中指定位置的元素。
    ? ? ? ? - public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
    ? ? ? ? - public E set(int index, E element):用指定元素替換集合中指定位置的元素,返回值的更新前的元素。
    ? ? 注意:
    ? ? ? ? 操作索引的時(shí)候,一定要防止索引越界異常
    ? ? ? ? IndexOutOfBoundsException:索引越界異常,集合會(huì)報(bào)
    ? ? ? ? ArrayIndexOutOfBoundsException:數(shù)組索引越界異常
    ? ? ? ? StringIndexOutOfBoundsException:字符串索引越界異常

    package com.itheima.demo01.List;import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class Demo01List {public static void main(String[] args) {//創(chuàng)建一個(gè)List集合對(duì)象,多態(tài)List<String> list = new ArrayList<>();//使用add方法往集合中添加元素list.add("a");list.add("b");list.add("c");list.add("d");list.add("a");//打印集合System.out.println(list);//[a, b, c, d, a] 不是地址重寫(xiě)了toString//public void add(int index, E element): 將指定的元素,添加到該集合中的指定位置上。//在c和d之間添加一個(gè)itheimalist.add(3,"itheima");//[a, b, c, itheima, d, a]System.out.println(list);//public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。//移除元素String removeE = list.remove(2);System.out.println("被移除的元素:"+removeE);//被移除的元素:cSystem.out.println(list);//[a, b, itheima, d, a]//public E set(int index, E element):用指定元素替換集合中指定位置的元素,返回值的更新前的元素。//把最后一個(gè)a,替換為AString setE = list.set(4, "A");System.out.println("被替換的元素:"+setE);//被替換的元素:aSystem.out.println(list);//[a, b, itheima, d, A]//List集合遍歷有3種方式//使用普通的for循環(huán)for(int i=0; i<list.size(); i++){//public E get(int index):返回集合中指定位置的元素。String s = list.get(i);System.out.println(s);}System.out.println("-----------------");//使用迭代器Iterator<String> it = list.iterator();while(it.hasNext()){String s = it.next();System.out.println(s);}System.out.println("-----------------");//使用增強(qiáng)forfor (String s : list) {System.out.println(s);}String r = list.get(5);//IndexOutOfBoundsException: Index 5 out-of-bounds for length 5System.out.println(r);} }

    ?



    ArrayList集合



    LinkedList集合

    LinkedListList的子類(lèi),List中的方法LinkedList都是可以使用,這里就不做詳細(xì)介紹,我們只需要了解LinkedList的特有方法即可。在開(kāi)發(fā)時(shí),LinkedList集合也可以作為堆棧,隊(duì)列的結(jié)構(gòu)使用

    java.util.LinkedList集合 implements List接口
    ? ? LinkedList集合的特點(diǎn):
    ? ? ? ? 1.底層是一個(gè)鏈表結(jié)構(gòu):查詢慢,增刪快
    ? ? ? ? 2.里邊包含了大量操作首尾元素的方法
    ? ? ? ? 注意:使用LinkedList集合特有的方法,不能使用多態(tài)

    package com.itheima.demo01.List;import java.util.LinkedList;public class Demo02LinkedList {public static void main(String[] args) {show03();}/*- public E removeFirst():移除并返回此列表的第一個(gè)元素。- public E removeLast():移除并返回此列表的最后一個(gè)元素。- public E pop():從此列表所表示的堆棧處彈出一個(gè)元素。此方法相當(dāng)于 removeFirst*/private static void show03() {//創(chuàng)建LinkedList集合對(duì)象LinkedList<String> linked = new LinkedList<>();//使用add方法往集合中添加元素linked.add("a");linked.add("b");linked.add("c");System.out.println(linked);//[a, b, c]//String first = linked.removeFirst();String first = linked.pop();System.out.println("被移除的第一個(gè)元素:"+first);String last = linked.removeLast();System.out.println("被移除的最后一個(gè)元素:"+last);System.out.println(linked);//[b]}/*- public E getFirst():返回此列表的第一個(gè)元素。- public E getLast():返回此列表的最后一個(gè)元素。*/private static void show02() {//創(chuàng)建LinkedList集合對(duì)象LinkedList<String> linked = new LinkedList<>();//使用add方法往集合中添加元素linked.add("a");linked.add("b");linked.add("c");//linked.clear();//清空集合中的元素 在獲取集合中的元素會(huì)拋出NoSuchElementException//public boolean isEmpty():如果列表不包含元素,則返回true。if(!linked.isEmpty()){String first = linked.getFirst();System.out.println(first);//aString last = linked.getLast();System.out.println(last);//c}}/*- public void addFirst(E e):將指定元素插入此列表的開(kāi)頭。- public void addLast(E e):將指定元素添加到此列表的結(jié)尾。- public void push(E e):將元素推入此列表所表示的堆棧。此方法等效于 addFirst(E)。*/private static void show01() {//創(chuàng)建LinkedList集合對(duì)象LinkedList<String> linked = new LinkedList<>();//使用add方法往集合中添加元素linked.add("a");linked.add("b");linked.add("c");System.out.println(linked);//[a, b, c]//public void addFirst(E e):將指定元素插入此列表的開(kāi)頭。//linked.addFirst("www");linked.push("www");System.out.println(linked);//[www, a, b, c]//public void addLast(E e):將指定元素添加到此列表的結(jié)尾。此方法等效于 add()linked.addLast("com");System.out.println(linked);//[www, a, b, c, com]} }

    ?

    總結(jié)

    以上是生活随笔為你收集整理的List集合与List的子类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。