一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 深入剖析java中的集合框架

深入剖析java中的集合框架

2020-05-03 14:10jingxian JAVA教程

下面小編就為大家帶來一篇深入剖析java中的集合框架。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

解析:如果并不知道程序運行時會需要多少對象,或者需要更復雜方式存儲對象,那么可以使用Java集合框架。

如果啟用集合的刪除方法,那么集合中所有元素的索引會自動維護。

集合完全彌補了數組的缺陷。

02.集合框架的內容

 集合框架都包含三大塊內容:對外的接口,接口的實現和對集合運算的算法

 01.接口:表示集合的抽象數據類型

 02.實現:集合框架中接口的具體實現

 03.算法:在一個實現了某個集合框架的接口的對象身上完成某種有用的計算方法

java集合框架簡圖:

 

深入剖析java中的集合框架

 01.Collection接口存在儲存一組不唯一(允許重復),無序的對象

02.Set接口繼承Collection接口,存儲一組唯一(不允許重復),無序的對象

03.List接口繼承Collection接口,存儲一組不唯一(允許重復),有序(以元素插入的次序來放置元素,不會重新排列)的對象

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

05.Iterator接口是負責定義訪問和遍歷元素的接口。

下面開始介紹:

1.List接口

深入剖析java中的集合框架

List接口繼承Collection接口,存儲一組不唯一(允許重復),有序(以元素插入的次序來放置元素,不會重新排列)的對象

  實現List接口的常用類有ArrayList和LinkedList

ArrayList對數組進行了封裝,實現了長度可變的數組

LinkedList采用鏈表存儲方式,其優點在于插入,刪除元素時效率比較高

01.ArrayList集合類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package cn.day001;
 
public class Penguin {
  private String name="無名氏";
  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;
  }
  
  
 
}

測試類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package cn.day001;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
//上機1 ArrayList集合類
public class Test {
 
  public static void main(String[] args) {
    //1.創建多個企鵝對象
    Penguin penguin=new Penguin("楠楠","Q仔");
    
    Penguin penguin2=new Penguin("花花","Q妹");
    
    Penguin penguin3=new Penguin("哲哲","Q妹");
    
    //2.創建Arraylist集合對象并把2個企鵝對象放到其中
    List<Penguin> penguins=new ArrayList<Penguin>();
    
    penguins.add(penguin);
    penguins.add(penguin2);
    penguins.add(penguin3);
    //3.輸出集合中企鵝的數量
    System.out.println("共計有"+penguins.size()+"只企鵝");
    
    //4.通過遍歷集合顯示
    for (int i = 0; i < penguins.size(); i++) {
      Penguin pg=(Penguin)penguins.get(i);
      System.out.println(pg.getName()+" "+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()+" 性別"+pg.getSex());
      
    }
    System.out.println();
    //8.使用foreach遍歷
    System.out.println("使用foreach遍歷");
    for (Penguin pg : penguins) {
      System.out.println("名字"+pg.getName()+" 性別"+pg.getSex());
    }
 
  }
 
}

02.LinkedList集合類

深入剖析java中的集合框架

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package cn.day001;
 
 
import java.util.LinkedList;
 
 
//測試LinkedList的多個特殊方法
public class Test2 {
 
  public static void main(String[] args) {
    //1.創建多個企鵝對象
        Penguin penguin=new Penguin("楠楠","Q仔");
        
        Penguin penguin2=new Penguin("花花","Q妹");
        
        Penguin penguin3=new Penguin("哲哲","Q妹");
        
        //2.創建Arraylist集合對象并把2個企鵝對象放到其中
        //List<Penguin> penguins=new ArrayList<Penguin>();
        LinkedList<Penguin> penguins=new LinkedList<Penguin>();
        
        penguins.add(penguin);
        penguins.add(penguin2);
        penguins.add(penguin3);
        //3.輸出集合中企鵝的數量
        System.out.println("共計有"+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("刪除后企鵝數"+penguins.size());
 
 
  }
 
}

2.Map接口

深入剖析java中的集合框架

01.HashMap集合類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package cn.day002;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
 
//上機2 根據寵物昵稱查找寵物  上機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("請輸入寵物昵稱:");
    String name=input.next();
    if (pet.containsKey(name)) {
      String petname=pet.get(name);
      System.out.println(name+"對應的寵物"+petname);
    }else {
      System.out.println("對不起,沒有此昵稱對應的寵物");
    }
    
    System.out.println();
    //使用iterator迭代遍歷
    System.out.println("使用iterator遍歷");
    Set<String> keys=pet.keySet();//取出所有的key的值
    Iterator<String> it=keys.iterator();//獲取Iteratoer對象
    while (it.hasNext()) {
      String key = (String) it.next();//取出key值
      String pets=pet.get(key);//根據key取出對應的值
      System.out.println("key值:"+key+" value值:"+pets);
    }
 
  }
 
}

以上這篇深入剖析java中的集合框架就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久香蕉国产免费天天 | 亚洲精品国产在线网站 | 五月天精品视频在线观看 | 91寡妇天天综合久久影院 | 久久青青草原精品国产软件 | 亚洲精品有码在线观看 | yw在线观看成人免费 | 91久久国产成人免费观看资源 | 成人国产精品一级毛片视频 | 亚偷熟乱区视频在线观看 | 高清在线免费观看 | 国产在线看片护士免费视频 | 美女1819xxxx| 欧美一级专区免费大片俄罗斯 | 国产精品一二区 | 大胸纲手被羞羞漫画网站 | 午夜宅男网 | 97色吧| 国内偷拍第一页 | 白丝捆绑vk | xxxx成人| 精品操 | 成年人网站免费在线观看 | 特黄特色大片免费视频大全 | 天堂精品高清1区2区3区 | 欧美性4khd720 | 国产精品视频一区二区三区w | 超爽人人做人人爽 | 调教肉文| 午夜爱情动作片P | 擦逼视频 | 无遮掩60分钟从头啪到尾 | bestialityvideo另类| 五月天婷婷网亚洲综合在线 | 白丝h视频| 26uuu老色哥 236宅宅2021最新理论 | 小舞同人18av黄漫网站 | 红怡院欧洲 | 小柔的性放荡羞辱日记 | les女同h高h喷水| 国色天香论坛社区在线视频 |