欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入剖析java中的集合框架

 更新時(shí)間:2016年05月20日 16:10:21   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇深入剖析java中的集合框架。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

解析:如果并不知道程序運(yùn)行時(shí)會(huì)需要多少對(duì)象,或者需要更復(fù)雜方式存儲(chǔ)對(duì)象,那么可以使用Java集合框架。

如果啟用集合的刪除方法,那么集合中所有元素的索引會(huì)自動(dòng)維護(hù)。

集合完全彌補(bǔ)了數(shù)組的缺陷。

02.集合框架的內(nèi)容

 集合框架都包含三大塊內(nèi)容:對(duì)外的接口,接口的實(shí)現(xiàn)和對(duì)集合運(yùn)算的算法

 01.接口:表示集合的抽象數(shù)據(jù)類型

 02.實(shí)現(xiàn):集合框架中接口的具體實(shí)現(xiàn)

 03.算法:在一個(gè)實(shí)現(xiàn)了某個(gè)集合框架的接口的對(duì)象身上完成某種有用的計(jì)算方法

java集合框架簡(jiǎn)圖:

 

 01.Collection接口存在儲(chǔ)存一組不唯一(允許重復(fù)),無(wú)序的對(duì)象

02.Set接口繼承Collection接口,存儲(chǔ)一組唯一(不允許重復(fù)),無(wú)序的對(duì)象

03.List接口繼承Collection接口,存儲(chǔ)一組不唯一(允許重復(fù)),有序(以元素插入的次序來(lái)放置元素,不會(huì)重新排列)的對(duì)象

04.Map接口存儲(chǔ)一組成對(duì)的鍵-值對(duì)象,提供key(鍵)到value(值)的映射。Map中的key不要求有序,不允許重復(fù)。value同樣不要求有序,但允許重復(fù)。

05.Iterator接口是負(fù)責(zé)定義訪問(wèn)和遍歷元素的接口。

下面開(kāi)始介紹:

1.List接口     

List接口繼承Collection接口,存儲(chǔ)一組不唯一(允許重復(fù)),有序(以元素插入的次序來(lái)放置元素,不會(huì)重新排列)的對(duì)象

  實(shí)現(xiàn)List接口的常用類有ArrayList和LinkedList

ArrayList對(duì)數(shù)組進(jìn)行了封裝,實(shí)現(xiàn)了長(zhǎng)度可變的數(shù)組

LinkedList采用鏈表存儲(chǔ)方式,其優(yōu)點(diǎn)在于插入,刪除元素時(shí)效率比較高

01.ArrayList集合類

package cn.day001;

public class Penguin {
  private String name="無(wú)名氏";
  private String sex="Q仔";
  
  public Penguin() {

  }
  public Penguin(String name, String sex) {
    this.name = name;
    this.sex = sex;
  }    
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getSex() {
    return sex;
  }
  public void setSex(String sex) {
    this.sex = sex;
  }
  
  

}

測(cè)試類:

package cn.day001;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

//上機(jī)1 ArrayList集合類
public class Test {

  public static void main(String[] args) {
    //1.創(chuàng)建多個(gè)企鵝對(duì)象
    Penguin penguin=new Penguin("楠楠","Q仔");
    
    Penguin penguin2=new Penguin("花花","Q妹");
    
    Penguin penguin3=new Penguin("哲哲","Q妹");
    
    //2.創(chuàng)建Arraylist集合對(duì)象并把2個(gè)企鵝對(duì)象放到其中
    List<Penguin> penguins=new ArrayList<Penguin>();
    
    penguins.add(penguin);
    penguins.add(penguin2);
    penguins.add(penguin3);
    //3.輸出集合中企鵝的數(shù)量
    System.out.println("共計(jì)有"+penguins.size()+"只企鵝");
    
    //4.通過(guò)遍歷集合顯示
    for (int i = 0; i < penguins.size(); i++) {
      Penguin pg=(Penguin)penguins.get(i);
      System.out.println(pg.getName()+"\t"+pg.getSex());
    }
    //5.刪除集合中哲哲企鵝
    penguins.remove(penguin3);
    
    //6.判斷集合中是否還存在哲哲企鵝
    if (penguins.contains(penguin3)) {
      System.out.println("存在哲哲企鵝");
    }else {
      System.out.println("不存在哲哲企鵝");
    }
    System.out.println();
    //7.使用iterator迭代遍歷
    System.out.println("使用iterator遍歷");
    Iterator<Penguin> its=penguins.iterator();
    while (its.hasNext()) {
      Penguin pg =its.next();
      System.out.println("名字"+pg.getName()+"\t性別"+pg.getSex());
      
    }
    System.out.println();
    //8.使用foreach遍歷
    System.out.println("使用foreach遍歷");
    for (Penguin pg : penguins) {
      System.out.println("名字"+pg.getName()+"\t性別"+pg.getSex());
    }

  }

}

02.LinkedList集合類

 

package cn.day001;


import java.util.LinkedList;


//測(cè)試LinkedList的多個(gè)特殊方法
public class Test2 {

  public static void main(String[] args) {
    //1.創(chuàng)建多個(gè)企鵝對(duì)象
        Penguin penguin=new Penguin("楠楠","Q仔");
        
        Penguin penguin2=new Penguin("花花","Q妹");
        
        Penguin penguin3=new Penguin("哲哲","Q妹");
        
        //2.創(chuàng)建Arraylist集合對(duì)象并把2個(gè)企鵝對(duì)象放到其中
        //List<Penguin> penguins=new ArrayList<Penguin>();
        LinkedList<Penguin> penguins=new LinkedList<Penguin>();
        
        penguins.add(penguin);
        penguins.add(penguin2);
        penguins.add(penguin3);
        //3.輸出集合中企鵝的數(shù)量
        System.out.println("共計(jì)有"+penguins.size()+"只企鵝");
        
        //4.查看集合中第一只企鵝的昵稱
        Penguin firstpenguins=penguins.getFirst();
        System.out.println("第一只企鵝的昵稱是:"+firstpenguins.getName());
        
        //5.查看集合中最后一只企鵝的昵稱
        Penguin lastpenguins=penguins.getLast();
        System.out.println("最后一只企鵝的昵稱是:"+lastpenguins.getName());
        
        //6.刪除第一只企鵝和最后一只企鵝
        penguins.removeFirst();
        penguins.removeLast();
        
        System.out.println("刪除后企鵝數(shù)"+penguins.size());


  }

}

2.Map接口

     

01.HashMap集合類

package cn.day002;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

//上機(jī)2 根據(jù)寵物昵稱查找寵物  上機(jī)3 使用iterator迭代遍歷
public class Test {

  public static void main(String[] args) {
    Map<String, String> pet=new HashMap<String, String>();
    
    pet.put("嘻嘻", "狗狗");
    pet.put("哈哈", "企鵝");
    pet.put("呵呵", "貓貓");
    
    Scanner input=new Scanner(System.in);
    
    System.out.println("請(qǐng)輸入寵物昵稱:");
    String name=input.next();
    if (pet.containsKey(name)) {
      String petname=pet.get(name);
      System.out.println(name+"對(duì)應(yīng)的寵物"+petname);
    }else {
      System.out.println("對(duì)不起,沒(méi)有此昵稱對(duì)應(yīng)的寵物");
    }
    
    System.out.println();
    //使用iterator迭代遍歷
    System.out.println("使用iterator遍歷");
    Set<String> keys=pet.keySet();//取出所有的key的值
    Iterator<String> it=keys.iterator();//獲取Iteratoer對(duì)象
    while (it.hasNext()) {
      String key = (String) it.next();//取出key值
      String pets=pet.get(key);//根據(jù)key取出對(duì)應(yīng)的值
      System.out.println("key值:"+key+"\tvalue值:"+pets);
    }

  }

}

以上這篇深入剖析java中的集合框架就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA開(kāi)發(fā)環(huán)境搭建教程

    JAVA開(kāi)發(fā)環(huán)境搭建教程

    這篇文章主要為大家詳細(xì)介紹了JAVA開(kāi)發(fā)環(huán)境搭建教程,配置JAVA開(kāi)發(fā)環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • java NIO 詳解

    java NIO 詳解

    Java NIO(New IO)是從Java 1.4版本開(kāi)始引入的一個(gè)新的IO API,可以替代標(biāo)準(zhǔn)的Java IO API。本系列教程將有助于你學(xué)習(xí)和理解Java NIO。
    2014-10-10
  • Java設(shè)計(jì)模式之Iterator模式介紹

    Java設(shè)計(jì)模式之Iterator模式介紹

    所謂Iterator模式,即是Iterator為不同的容器提供一個(gè)統(tǒng)一的訪問(wèn)方式。本文以java中的容器為例,模擬Iterator的原理。需要的朋友可以參考下
    2013-07-07
  • 了解Java線程池執(zhí)行原理

    了解Java線程池執(zhí)行原理

    那么有沒(méi)有一種辦法使得線程可以復(fù)用,就是執(zhí)行完一個(gè)任務(wù),并不被銷毀,而是可以繼續(xù)執(zhí)行其他的任務(wù)?在Java中可以通過(guò)線程池來(lái)達(dá)到這樣的效果。下面我們來(lái)詳細(xì)了解一下吧
    2019-05-05
  • 淺析java貪心算法

    淺析java貪心算法

    這篇文章簡(jiǎn)單主要介紹了java貪心算法,包含貪心算法的基本思路,性質(zhì),以及實(shí)現(xiàn)示例,有需要的小伙伴參考下
    2015-02-02
  • 詳解SpringBoot2 使用Spring Session集群

    詳解SpringBoot2 使用Spring Session集群

    這篇文章主要介紹了SpringBoot2 使用Spring Session集群,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04
  • 解決java.sql.SQLException:The?server?time?zone?value?'?D1ú±ê×?ê±??'?is?unrecognized問(wèn)題

    解決java.sql.SQLException:The?server?time?zone?value?&apo

    這篇文章主要介紹了解決java.sql.SQLException:The?server?time?zone?value?'?D1ú±ê×?ê±??'?is?unrecognized問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 使用Spring開(kāi)啟@Async異步方式(javaconfig配置)

    使用Spring開(kāi)啟@Async異步方式(javaconfig配置)

    這篇文章主要介紹了使用Spring開(kāi)啟@Async異步方式(javaconfig配置),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java雙重MD5加密實(shí)現(xiàn)安全登錄

    Java雙重MD5加密實(shí)現(xiàn)安全登錄

    MD5對(duì)密碼進(jìn)行加密存儲(chǔ)是常見(jiàn)的一種加密方式,本文主要介紹了Java雙重MD5加密實(shí)現(xiàn)安全登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Nacos?Discovery服務(wù)治理解決方案

    Nacos?Discovery服務(wù)治理解決方案

    DiscoveryClient是專門負(fù)責(zé)服務(wù)注冊(cè)和發(fā)現(xiàn)的,我們可以通過(guò)它獲取到注冊(cè)到注冊(cè)中心的所有服務(wù),這篇文章主要介紹了Nacos?Discovery服務(wù)治理,需要的朋友可以參考下
    2022-11-11

最新評(píng)論