java 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法
List 的方法列表
| 方法名 | 功能說明 | |
|---|---|---|
| ArrayList() | 構(gòu)造方法,用于創(chuàng)建一個(gè)空的數(shù)組列表 | |
| add(E e) | 將指定的元素添加到此列表的尾部 | |
| get(int index) | 返回此列表中指定位置上的元素 | |
| size() | 返回此列表中的元素?cái)?shù) | |
| clear() | 移除此列表中的所有元素 | |
| isEmpty() | 如果此列表中沒有元素,則返回true | |
| remove(int index) | 移除此列表中指定位置上的元素 | |
| indextof(Object o) | 返回此列表中首次出現(xiàn)的指定元素的索引,或如果此列表不包含元素,則返回-1 | |
| toArray | 按適當(dāng)順序(從第一個(gè)到最后一個(gè)元素)返回包含此列表中所有元素的數(shù)組 |
下面將用一個(gè)簡(jiǎn)單的例子進(jìn)行說明:
實(shí)現(xiàn)類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)類
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);//如果用定義變量的形式來表示的話,需要用到強(qiáng)制類型的轉(zhuǎn)換,因?yàn)閘ist。get()方法是object的類里的
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 語句
for (Object x:list)
{
System.out.print(x+" ");
}
System.out.println();
//使用迭代器
//1.先獲得list集合的迭代器
Iterator iterator = list.iterator();
//2.通過它的hasNest方法,判斷是否遍歷完成,用循環(huán)實(shí)現(xiàn)
while (iterator.hasNext() == true)
{
//3.使用next方法,去除它的下一個(gè)元素
System.out.print(iterator.next()+" ");
}
System.out.println();
}
}
//再寫上迭代器的說明
//加上arraylist 和 linbkedlist的區(qū)別 和代碼
//加上后面的幾個(gè)方法
實(shí)現(xiàn)類LinkedList
List 接口的鏈接列表實(shí)現(xiàn),實(shí)現(xiàn)所有可選的列表操作,并且允許所有元素(包括null)。除了實(shí)現(xiàn)List接口外,LinkedList類還為在列表的開頭及結(jié)尾get,remove,insert元素提供了統(tǒng)一的命名方法。這些操作允許將鏈表列表表應(yīng)作堆棧、隊(duì)列、或雙端隊(duì)列。
LinkedList的部分方法
| 方法名 | 功能說明 | |
|---|---|---|
| addFirst(E e) | 將指定元素插入此列表的開頭 | |
| 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)類
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è)集合類都提供了iterator方法以返回一個(gè)迭代器,通過這個(gè)迭代器,可以完成集合的遍歷或刪除操作,迭代器的使用步驟如下:
****
1.通過Iterator方法獲得集合的迭代器
2.通過調(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 語句
for (Object x:list)
{
System.out.print(x+" ");
}
System.out.println();
//使用迭代器
//1.先獲得list集合的迭代器
Iterator iterator = list.iterator();
//2.通過它的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)類ArrayList和LinkedList的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MapStruct實(shí)體間轉(zhuǎn)換的簡(jiǎn)單用法
今天小編就為大家分享一篇關(guān)于MapStruct實(shí)體間轉(zhuǎn)換的簡(jiǎn)單用法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
spring boot 下對(duì)JSON返回值去除null和空字段操作
這篇文章主要介紹了spring boot 下對(duì)JSON返回值去除null和空字段操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10
synchronized?和?Lock?的異同點(diǎn)(如何讓選擇)
這篇文章主要介紹了?synchronized和Lock的異同點(diǎn)(如何讓選擇),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
引入SpringCloud-gateway報(bào)錯(cuò)的解決方案
這篇文章主要介紹了引入SpringCloud-gateway報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
spring+Jpa多數(shù)據(jù)源配置的方法示例
這篇文章主要介紹了spring+Jpa多數(shù)據(jù)源配置的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08
帶有@Transactional和@Async的循環(huán)依賴問題的解決
這篇文章主要介紹了帶有@Transactional和@Async的循環(huán)依賴問題的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

