最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java List接口的集合使用詳解

 更新時(shí)間:2021年08月31日 16:55:13   作者:深淺Java  
這篇文章主要介紹了Java集合操作之List接口及其實(shí)現(xiàn)方法,詳細(xì)分析了Java集合操作中List接口原理、功能、用法及操作注意事項(xiàng),需要的朋友可以參考下

List接口繼承collection接口,此接口可以對(duì)列表中的每個(gè)元素精確的控制,可以根據(jù)元素的索引來(lái)獲取列表中的值,下面介紹常用的幾種,ArrayList,LinkedList。

ArrayList集合

ArrayList是一個(gè)動(dòng)態(tài)修改的數(shù)組,它沒有固定的大小,不需要自己分配空間,java本身已經(jīng)初始化容量為10的大小,可以直接添加刪除等一系列操作。

ArrayList構(gòu)造方法:

  • ArrayList() ;構(gòu)造一個(gè)初始化容量為10的空列表。
  • ArrayList(Collection c) ; 構(gòu)造一個(gè)包含指定 collection 的元素的列表,這些元素是按照該 collection 的迭代器返回它們的順序排列的。
  • ArrayList(int initialCapacity) ;構(gòu)造一個(gè)指定初始容量的空列表。

常用方法:

方法名 說明
boolean add(E e) 將指定元素添加到列表尾部
void add(int index, E element) 將指定元素添加到列表中指定位置
void clear() 刪除此列表中的所有元素
Object clone() 返回ArrayList副本
boolean contains(Object o) 如果列表中包含指定元素則返回true,否則false
E get(int index) 返回列表中指定索引位置上的元素
int indexOf(Object o) 返回列表中首次出現(xiàn)的指定元素的索引,如果沒有則返回-1
int lastIndexOf(Object o) 返回此列表中最后一次出現(xiàn)的指定元素的索引,沒有則返回-1
E remove(int index) 刪除指定索引上的元素,并返回刪除值
boolean remove(Object o) 移除列表中首次出現(xiàn)的元素
E set(int index, E element) 將此列表中的索引位置的元素?fù)Q成指定的元素
int size() 返回此列表中的元素個(gè)數(shù)
Object[] toArray() 將此列表所有元素?fù)Q成數(shù)組
boolean isEmpty() 如果此列表為空則返回true
List subList(int fromlndex, int tolndex) 將此列表中從fromindex到toindex的元素組成新的集合返回

示例

import java.util.ArrayList;

public class dome2{
	public static void main(String[] args){
          ArrayList list=new ArrayList();
          list.add("nihoa"); //添加字符串
          list.add(12);   //添加數(shù)字
          list.add('a');   //添加字符
          list.add("hello");
          list.set(1,"java"); //將索引為1的換成字符串
          System.out.println("索引為2的值是:"+list.get(2));
          System.out.println("刪除索引為0的值是:"+list.remove(0));
          System.out.println("列表中還有"+list.size()+"個(gè)元素");
          System.out.println("判斷列表是不是為空: "+list.isEmpty());
          for (Object object : list) {   //循序打印
			System.out.print(object+" ");
		}
          
   }
}

結(jié)果
索引為2的值是:a
刪除索引為0的值是:nihoa
列表中還有3個(gè)元素
判斷列表是不是為空: false
java a hello

例1:

創(chuàng)建一個(gè)商品類,指定商品的編號(hào),名稱,價(jià)格,封裝它們。

 

class Goods{
	private int id;    //編號(hào)
	private String name;   //名稱
	private float price;   //價(jià)格
	public Goods() {
		
	}
	public Goods(int id, String name, float price) {
		super();
		this.id = id;
		this.name = name;
		this.price = price;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	@Override
	public String toString() {    //格式輸出
		return "商品編號(hào): "+id+", 名稱: "+", 價(jià)格: "+",";
	}
	
}

創(chuàng)建一個(gè)測(cè)試類,填寫商品的價(jià)格,編號(hào),名稱并保存到列表中,通過ArrayList類的方法修改和獲取值。

 

import java.util.ArrayList;


public class dome2{
	public static void main(String[] args){
          ArrayList<Goods> list=new ArrayList<Goods>();
          list.add(new Goods(1,"保溫杯",22.0f));
          list.add(new Goods(2,"洗發(fā)水",21.3f));
          list.add(new Goods(3,"筆記本",5.0f));
          Goods g=new Goods(5,"熱水壺",59.0f);
          list.add(g);
          list.add(new Goods(4,"菜刀",31.4f));
          
          //1.遍歷所有商品
          for(int i=0;i<list.size();i++) {
        	  System.out.println(list.get(i).toString());
          }
          //2.獲取指定商品的信息
          System.out.println("查找編號(hào)為3,名稱為熱水壺,價(jià)格為59元的元素索引"+list.indexOf(g));
          System.out.println("熱水壺的價(jià)格是 "+list.get(3).getPrice()+" 元");
          
          System.out.println("洗發(fā)水的編號(hào)是 "+list.get(1).getId());
          
          System.out.println("將菜刀的價(jià)格設(shè)為120元 ");
          list.get(list.size()-1).setPrice(120.0f);
          
        //3.遍歷所有商品
          for(int i=0;i<list.size();i++) {
        	  System.out.println(list.get(i).toString());
          }
          
   }
}

結(jié)果
商品編號(hào): 1 名稱: 保溫杯 價(jià)格: 22.0
商品編號(hào): 2 名稱: 洗發(fā)水 價(jià)格: 21.3
商品編號(hào): 3 名稱: 筆記本 價(jià)格: 5.0
商品編號(hào): 5 名稱: 熱水壺 價(jià)格: 59.0
商品編號(hào): 4 名稱: 菜刀 價(jià)格: 31.4
查找編號(hào)為3,名稱為熱水壺,價(jià)格為59元的元素索引3
熱水壺的價(jià)格是 59.0 元
洗發(fā)水的編號(hào)是 2
將菜刀的價(jià)格設(shè)為120元
商品編號(hào): 1 名稱: 保溫杯 價(jià)格: 22.0
商品編號(hào): 2 名稱: 洗發(fā)水 價(jià)格: 21.3
商品編號(hào): 3 名稱: 筆記本 價(jià)格: 5.0
商品編號(hào): 5 名稱: 熱水壺 價(jià)格: 59.0
商品編號(hào): 4 名稱: 菜刀 價(jià)格: 120.0

Iterator迭代器遍歷:

Iterator接口是Collection接口的超級(jí)接口,通過Collection接口下的iterator方法返回iterator。

Iterator方法:

方法名 說明
boolean hasNext() 如果有元素仍可以迭代,就返回true
E next() 返回迭代的下一個(gè)元素
void remove() 移除迭代器返回的最后一個(gè)元素
public class dome2{
	public static void main(String[] args){
          ArrayList list=new ArrayList();
         list.add("hello ");
         list.add("world!,");
         list.add("hello ");
         list.add("java!");
         
         Iterator it=list.iterator();
         while(it.hasNext()) {  //判斷是否還有下一個(gè)元素
        	 System.out.print(it.next());  //輸出下一個(gè)元素
         }
   
   }
}

LinkedList類

LinkedList類采用鏈表結(jié)構(gòu)保存對(duì)象,鏈表采用節(jié)點(diǎn)之間的指向,上一個(gè)節(jié)點(diǎn)指向下一個(gè)節(jié)點(diǎn),并且可以在中間插入,不需要數(shù)組還需要重新排列,所以在頻繁的插入元素和刪除元素這方面,LinkedList類要比ArrayList類要快,效率更高。但在訪問元素速度方面卻相對(duì)落后。

構(gòu)造方法

  • LinkedList() ;構(gòu)造一個(gè)空列表
  • LinkedList(Collection c) ;構(gòu)造一個(gè)包含指定 collection 中的元素的列表

常用方法:

方法名 說明
boolean add(E e) 將指定元素添加到元素列表的結(jié)尾
void add(int index, E element) 在列表中指定的位置插入指定的元素
void addFirst(E e) 將指定元素插入到此列表的開頭
void addLast(E e) 將指定的元素添加到此列表的結(jié)尾
boolean contains(Object o) 如果列表中有指定元素返回true,否則false
E element() 獲取但不移除此列表的第一個(gè)元素
E get(int index) 返回此列表中指定的元素
E getFirst() 返回此列表的第一個(gè)元素
E getLast() 返回此列表的最后一個(gè)元素
int indexOf(Object o) 返回此列表首次出現(xiàn)的指定元素的索引,沒有返回-1
int lastIndexOf(Object o) 返回此列表最后出現(xiàn)的指定元素的索引,沒有返回-1
E set(int index, E element) 將列表中指定位置的元素替換
E removeFirst() 移除并返回此列表中的第一個(gè)元素
E removeLast() 移除并返回此列表的最后一個(gè)元素

示例:

public class dome2{
	public static void main(String[] args){
         LinkedList list=new LinkedList();
         list.add("電風(fēng)扇");
         list.add("吹風(fēng)機(jī)");
         list.add("香皂");
         list.add("肥皂");
         list.add("洗發(fā)水");
         
         System.out.println("獲取的第一個(gè)商品是: "+list.getFirst());
         System.out.println("獲取的最后一個(gè)商品是: "+list.getLast());
         System.out.println("刪除的第一個(gè)元素是: "+list.removeFirst());
         System.out.println("將索引為3的元素修改成: "+list.set(3,"牛角梳"));
         
         for(int i=0;i<list.size();i++) {
        	 System.out.print(list.get(i)+"\t");
         } 
   }
}

LinkedList與ArrayList的區(qū)別:

1.ArrayList類是基于數(shù)組結(jié)構(gòu)實(shí)現(xiàn)的,訪問速度優(yōu)先于LinkedList類。

2.LinkedList類占用的內(nèi)存空間比較大,但在批量插入,刪除,修改等時(shí)優(yōu)先于ArrayList類。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Springboot的@Cacheable注解使用方法

    Springboot的@Cacheable注解使用方法

    @Cacheable 是 Spring 框架提供的一種基于緩存的注解,它可以被應(yīng)用在方法上以指示該方法的結(jié)果需要被緩存起來(lái),緩存在哪個(gè) Cache 中以及該方法使用何種緩存鍵,以下代碼展示了如何使用 @Cacheable 注解,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Java中notify和notifyAll的區(qū)別及何時(shí)使用

    Java中notify和notifyAll的區(qū)別及何時(shí)使用

    本文主要介紹了Java中notify和notifyAll的區(qū)別及何時(shí)使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • java中利用Dom4j解析和生成XML文檔

    java中利用Dom4j解析和生成XML文檔

    本篇文章主要介紹了java中利用Dom4j解析和生成XML文檔,dom4j是一套非常優(yōu)秀的Java開源api,主要用于讀寫xml文檔,具有性能優(yōu)異、功能強(qiáng)大、和非常方便使用的特點(diǎn)。有興趣的可以了解一下。
    2016-11-11
  • Spring Boot 從靜態(tài)json文件中讀取數(shù)據(jù)所需字段

    Spring Boot 從靜態(tài)json文件中讀取數(shù)據(jù)所需字段

    本文重點(diǎn)給大家介紹Spring Boot 從靜態(tài)json文件中讀取數(shù)據(jù)所需字段,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • java初學(xué)者必須理解這幾個(gè)問題

    java初學(xué)者必須理解這幾個(gè)問題

    這篇文章主要介紹了java初學(xué)者必須理解這幾個(gè)問題,需要的朋友可以參考下
    2014-10-10
  • 使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟記錄

    使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟記錄

    這篇文章主要給大家介紹了關(guān)于使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟,Spring?MVC是一種基于MVC模式的框架,它是Spring框架的一部分,它提供了一種更簡(jiǎn)單和更有效的方式來(lái)構(gòu)建Web應(yīng)用程序,需要的朋友可以參考下
    2024-05-05
  • springboot返回前端中文亂碼的解決

    springboot返回前端中文亂碼的解決

    這篇文章主要介紹了springboot返回前端中文亂碼的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SpringBoot線程池ThreadPoolTaskExecutor異步處理百萬(wàn)級(jí)數(shù)據(jù)

    SpringBoot線程池ThreadPoolTaskExecutor異步處理百萬(wàn)級(jí)數(shù)據(jù)

    本文主要介紹了SpringBoot線程池ThreadPoolTaskExecutor異步處理百萬(wàn)級(jí)數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • Java string.trim()究竟去掉了什么

    Java string.trim()究竟去掉了什么

    這篇文章主要介紹了Java string.trim()究竟去掉了什么,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java?volatile關(guān)鍵字特性講解下篇

    Java?volatile關(guān)鍵字特性講解下篇

    JMM要求保證可見性、原子性、有序性,volatile可以保證其中的兩個(gè),本篇文章具體驗(yàn)證volatile的可見性,不原子性和禁重排,同時(shí)解決volatile的不保證原子性,讓代碼具有原子性
    2022-12-12

最新評(píng)論

武冈市| 游戏| 北碚区| 巧家县| 浦东新区| 土默特右旗| 浦东新区| 临桂县| 迁西县| 大安市| 郑州市| 绥宁县| 名山县| 六枝特区| 运城市| 阿巴嘎旗| 镇江市| 河间市| 西乌| 健康| 柯坪县| 龙胜| 桃源县| 苏州市| 饶阳县| 河西区| 靖远县| 临澧县| 辛集市| 正宁县| 遵义县| 福建省| 南安市| 巴彦淖尔市| 阜宁县| 广宁县| 马鞍山市| 镇沅| 双城市| 中方县| 敦煌市|