java 集合之實(shí)現(xiàn)類(lèi)ArrayList和LinkedList的方法
List 的方法列表
| 方法名 | 功能說(shuō)明 | |
|---|---|---|
| ArrayList() | 構(gòu)造方法,用于創(chuàng)建一個(gè)空的數(shù)組列表 | |
| add(E e) | 將指定的元素添加到此列表的尾部 | |
| get(int index) | 返回此列表中指定位置上的元素 | |
| size() | 返回此列表中的元素?cái)?shù) | |
| clear() | 移除此列表中的所有元素 | |
| isEmpty() | 如果此列表中沒(méi)有元素,則返回true | |
| remove(int index) | 移除此列表中指定位置上的元素 | |
| indextof(Object o) | 返回此列表中首次出現(xiàn)的指定元素的索引,或如果此列表不包含元素,則返回-1 | |
| toArray | 按適當(dāng)順序(從第一個(gè)到最后一個(gè)元素)返回包含此列表中所有元素的數(shù)組 |
下面將用一個(gè)簡(jiǎn)單的例子進(jìn)行說(shuō)明:
實(shí)現(xiàn)類(lèi)ArrayList
package yjlblog;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List list = new ArrayList();//List 是接口,用多態(tài)需要指向它的實(shí)現(xiàn)類(lèi)
list.add("double kill");
list.add("three kill");
list.add("four kill");
list.add("pentakill");
System.out.println(list); //[double kill, three kill, four kill, pentakill]
//默認(rèn)調(diào)用的是tostring 方法,但是這個(gè)頭string方法不是object里面的,可以查幫助文檔可知,是繼承的collection的一個(gè)方法
System.out.println(list.get(2)); //four kill
String s = (String)list.get(2);//如果用定義變量的形式來(lái)表示的話,需要用到強(qiáng)制類(lèi)型的轉(zhuǎn)換,因?yàn)閘ist。get()方法是object的類(lèi)里的
System.out.println(list.isEmpty());
//false
//list.clear();
//System.out.println(list.isEmpty());
//true
//System.out.println(list.remove(2));//輸出制定索引的 被“刪除的元素”
list.remove(1);//刪除索引為“1” 的元素
System.out.println(list);//[double kill, four kill, pentakill],刪除了索引為“1”的元素
System.out.println(list.indexOf("double kill"));//0 輸出所指明字符串的 “索引值”
System.out.println(list.size());// 3 ,返回?cái)?shù)組的長(zhǎng)度
Object[] obj = list.toArray();
System.out.println(obj.length);
//數(shù)組的遍歷 for 循環(huán)
for (int i = 0;i < list.size();i++)
{
System.out.print(list.get(i)+" ");
}
System.out.println();
//使用for each 語(yǔ)句
for (Object x:list)
{
System.out.print(x+" ");
}
System.out.println();
//使用迭代器
//1.先獲得list集合的迭代器
Iterator iterator = list.iterator();
//2.通過(guò)它的hasNest方法,判斷是否遍歷完成,用循環(huán)實(shí)現(xiàn)
while (iterator.hasNext() == true)
{
//3.使用next方法,去除它的下一個(gè)元素
System.out.print(iterator.next()+" ");
}
System.out.println();
}
}
//再寫(xiě)上迭代器的說(shuō)明
//加上arraylist 和 linbkedlist的區(qū)別 和代碼
//加上后面的幾個(gè)方法
實(shí)現(xiàn)類(lèi)LinkedList
List 接口的鏈接列表實(shí)現(xiàn),實(shí)現(xiàn)所有可選的列表操作,并且允許所有元素(包括null)。除了實(shí)現(xiàn)List接口外,LinkedList類(lèi)還為在列表的開(kāi)頭及結(jié)尾get,remove,insert元素提供了統(tǒng)一的命名方法。這些操作允許將鏈表列表表應(yīng)作堆棧、隊(duì)列、或雙端隊(duì)列。
LinkedList的部分方法
| 方法名 | 功能說(shuō)明 | |
|---|---|---|
| addFirst(E e) | 將指定元素插入此列表的開(kāi)頭 | |
| addLast(E e) | 將指定元素添加到此列表的結(jié)尾 | |
| removeFirst() | 移除并返回此列表的第一個(gè)元素 | |
| removeLast() | 移除并返回此列表的最后一個(gè)元素 | |
| getFirst() | 返回此列表中的第一個(gè)元素 | |
| getLast() | 返回此列表中的最后一個(gè)元素 |
package yjlblog;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List list = new LinkedList();//List 是接口,用多態(tài)需要指向它的實(shí)現(xiàn)類(lèi)
list.add("double kill");
list.add("three kill");
list.add("four kill");
list.add("pentakill");
System.out.println(list); //[double kill, three kill, four kill, pentakill]
//和ArrayList 的其他方法都是一樣的,只是加了一些方法
集合的遍歷
從上面的例子中也有所提及,下面看代碼
使用for 循環(huán)
使用for -each 循環(huán)
使用Iterator(迭代器)接口
每個(gè)集合類(lèi)都提供了iterator方法以返回一個(gè)迭代器,通過(guò)這個(gè)迭代器,可以完成集合的遍歷或刪除操作,迭代器的使用步驟如下:
****
1.通過(guò)Iterator方法獲得集合的迭代器
2.通過(guò)調(diào)用hasNext 方法判斷是否存在下一個(gè)元素
3.使用next方法,去除它的下一個(gè)元素
//數(shù)組的遍歷 for 循環(huán)
for (int i = 0;i < list.size();i++)
{
System.out.print(list.get(i)+" ");
}
System.out.println();
//使用for each 語(yǔ)句
for (Object x:list)
{
System.out.print(x+" ");
}
System.out.println();
//使用迭代器
//1.先獲得list集合的迭代器
Iterator iterator = list.iterator();
//2.通過(guò)它的hasNest方法,判斷是否遍歷完成,用循環(huán)實(shí)現(xiàn)
while (iterator.hasNext() == true)
{
//3.使用next方法,去除它的下一個(gè)元素
System.out.print(iterator.next()+" ");
}
System.out.println();
以上這篇java 集合之實(shí)現(xiàn)類(lèi)ArrayList和LinkedList的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis-plus?查詢(xún)傳入?yún)?shù)Map,返回List<Map>方式
這篇文章主要介紹了mybatis-plus?查詢(xún)傳入?yún)?shù)Map,返回List<Map>方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringBoot獲取當(dāng)前運(yùn)行環(huán)境三種方式小結(jié)
在使用SpringBoot過(guò)程中,我們只需要引入相關(guān)依賴(lài),然后在main方法中調(diào)用SpringBootApplication.run(應(yīng)用程序啟動(dòng)類(lèi).class)方法即可,那么SpringBoot是如何獲取當(dāng)前運(yùn)行環(huán)境呢,接下來(lái)由小編給大家介紹一下SpringBoot獲取當(dāng)前運(yùn)行環(huán)境三種方式,需要的朋友可以參考下2024-01-01
Java之如何正確地對(duì)包裝類(lèi)進(jìn)行裝箱與拆箱
在這篇文章中給大家繼續(xù)講解包裝類(lèi)的裝箱和拆箱問(wèn)題。你可能會(huì)很好奇,做java開(kāi)發(fā),怎么還裝起箱子來(lái)了?那么就請(qǐng)大家?guī)е苫笸驴窗?/div> 2023-04-04
詳解Java Fibonacci Search斐波那契搜索算法代碼實(shí)現(xiàn)
這篇文章主要介紹了詳解Java Fibonacci Search斐波那契搜索算法代碼實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
如何用注解的方式實(shí)現(xiàn)Mybatis插入數(shù)據(jù)時(shí)返回自增的主鍵Id
這篇文章主要介紹了如何用注解的方式實(shí)現(xiàn)Mybatis插入數(shù)據(jù)時(shí)返回自增的主鍵Id,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
SpringBoot整合SpringSecurity實(shí)現(xiàn)JWT認(rèn)證的項(xiàng)目實(shí)踐
本文會(huì)通過(guò)創(chuàng)建SpringBoot項(xiàng)目整合SpringSecurity,實(shí)現(xiàn)完整的JWT認(rèn)證機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07最新評(píng)論

