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

Java集合框架之Collection接口詳解

 更新時間:2016年12月22日 14:50:42   作者:汪先森  
這篇文章主要為大家詳細介紹了Java集合框架之Collection接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Java是一門面向?qū)ο蟮恼Z言,那么我們寫程序的時候最經(jīng)常操作的便是對象了,為此,Java提供了一些專門用來處理對象的類庫,這些類庫的集合我們稱之為集合框架。Java集合工具包位于Java.util包下,包含了很多常用的數(shù)據(jù)結構,如數(shù)組、鏈表、棧、隊列、集合、哈希表等。學習Java集合框架下大致可以分為如下五個部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具類(Arrays、Collections)。

Java的集合類主要由兩個接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,這兩個接口又包含了一些接口或?qū)崿F(xiàn)類。

可以看到Collection并沒有直接實現(xiàn)類,而是提供更具體的子接口實現(xiàn)。通過查詢API,可以總結出Collection的基本功能。

1、添加

boolean add(E e):添加一個元素

boolean addAll(Collection<? extends E> c):添加一個集合的元素

示例代碼

package collection;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo1 {
  public static void main(String[] args) {
    Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類
    collection1.add("紅樓夢");
    collection1.add("三國演義");
    System.out.println(collection1);

    Collection collection2 = new ArrayList();
    collection2.add("西游記");
    collection2.add("水滸傳");

    collection1.add(collection2);
    System.out.println(collection1);
  }
}

輸出結果:

[紅樓夢, 三國演義]
[紅樓夢, 三國演義, [西游記, 水滸傳]]

2、刪除
void clear():清空集合中的所有元素

boolean remove(Object o):移除指定的元素

boolean removeAll(Collection<?> c):移除一個集合的元素

示例代碼

package collection;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo2 {
  public static void main(String[] args) {
    Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類
    collection1.add("紅樓夢");
    collection1.add("三國演義");
    collection1.add("西游記");
    collection1.add("水滸傳");
    System.out.println("初始狀態(tài):" + collection1);

    boolean b1 = collection1.remove("紅樓夢");
    System.out.println("是否移除了元素:" + b1);
    System.out.println("移除一個元素:" + collection1);
    System.out.println();

    Collection collection2 = new ArrayList();
    collection2.add("三國演義");
    collection2.add("西游記");
    collection2.add("平凡的世界");
    boolean b2 = collection1.removeAll(collection2); // 移除兩個集合的交集,只要有一個元素被移除了,就返回true
    System.out.println("移除一個集合:" + collection1);
    System.out.println("是否移除了元素:" + b2);
    System.out.println();

    Collection collection3 = new ArrayList();
    collection3.add("平凡的世界");
    collection3.add("圍城");
    boolean b3 = collection1.removeAll(collection3);// 移除兩個集合的交集,只要有一個元素被移除了,就返回true
    System.out.println("移除一個集合:" + collection1);
    System.out.println("是否移除了元素:" + b3);
    System.out.println();

    collection1.clear();
    System.out.println("清除集合中的所有元素:" + collection1);
  }
}

輸出結果

初始狀態(tài):[紅樓夢, 三國演義, 西游記, 水滸傳]
是否移除了元素:true
移除一個元素:[三國演義, 西游記, 水滸傳]

移除一個集合:[水滸傳]
是否移除了元素:true

移除一個集合:[水滸傳]
是否移除了元素:false

清除集合中的所有元素:[]

3、判斷

boolean contains(Object o):判斷集合是否包含指定元素

boolean containsAll(Collection<?> c):判斷集合是否包含指定的集合元素

boolean isEmpty():判斷集合是否為空

示例代碼

package collection;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo3 {
  public static void main(String[] args) {
    Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類
    collection1.add("紅樓夢");
    collection1.add("三國演義");
    collection1.add("西游記");
    collection1.add("水滸傳");
    System.out.println("是否包含紅樓夢:" + collection1.contains("紅樓夢"));

    Collection collection2 = new ArrayList();
    collection2.add("三國演義");
    collection2.add("西游記");
    collection2.add("平凡的世界");
    System.out.println("是否包含一個集合中元素:" + collection1.containsAll(collection2)); // 包含所有才包含

    System.out.println("集合是否為空:" + collection1.isEmpty());
  }
}

輸出結果

是否包含紅樓夢:true
是否包含一個集合中元素:false
集合是否為空:false

4、獲取長度

int size():獲取集合中元素的個數(shù)

示例代碼

package collection;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo4 {
  public static void main(String[] args) {
    Collection collection = new ArrayList(); // Collection是接口,實例化其子類
    collection.add("紅樓夢");
    collection.add("三國演義");
    collection.add("西游記");
    collection.add("水滸傳");
    System.out.println("元素個數(shù):" + collection.size());
  }
}

輸出結果

元素個數(shù):4

5、交集

boolean retainAll(Collection<?> c):保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。換句話說,移除此 collection 中未包含在指定 collection 中的所有元素。

示例代碼

package collection;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo5 {
  public static void main(String[] args) {
    Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類
    collection1.add("紅樓夢");
    collection1.add("三國演義");
    collection1.add("西游記");
    collection1.add("水滸傳");

    Collection collection2 = new ArrayList();
    collection2.add("西游記");
    collection2.add("水滸傳");
    System.out.println(collection1.retainAll(collection2));
    System.out.println("collection1:" + collection1);
    System.out.println("collection2:" + collection2);

    Collection collection3 = new ArrayList();
    collection3.add("西游記");
    collection3.add("平凡的世界");
    System.out.println(collection1.retainAll(collection3));
    System.out.println("collection1: " + collection1);
    System.out.println("collection2: " + collection2);
  }
}

輸出結果

true
collection1:[西游記, 水滸傳]
collection2:[西游記, 水滸傳]
true
collection1: [西游記]
collection2: [西游記, 水滸傳]

從上面結果分析得知,collection1集合與collection2集合做交集運算,最后的結果保留在collection1中,而collection2中的元素保持不變。

6、集合轉(zhuǎn)數(shù)組

Object[] toArray():集合轉(zhuǎn)數(shù)組

示例代碼

package collection;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo6 {
  public static void main(String[] args) {
    Collection collection = new ArrayList(); // Collection是接口,實例化其子類
    collection.add("紅樓夢");
    collection.add("三國演義");
    collection.add("西游記");
    collection.add("水滸傳");

    Object[] objects = collection.toArray();

    for (Object object : objects) {
      System.out.println(object);
    }
  }
}

輸出結果:

紅樓夢
三國演義
西游記
水滸傳

7、遍歷

Iterator<E> iterator():返回在此 collection 的元素上進行迭代的迭代器,迭代器是集合特有的遍歷方式

其中Iterator是一個接口,其有3個方法

boolean hasNext():如果仍有元素可以迭代,則返回 true。

E next():返回迭代的下一個元素,并移動到下一個位置。

void remove():從迭代器指向的 collection 中移除迭代器返回的最后一個元素

示例代碼

package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class CollectionDemo7 {
  public static void main(String[] args) {
    Collection collection = new ArrayList(); // Collection是接口,實例化其子類
    collection.add("紅樓夢");
    collection.add("三國演義");
    collection.add("西游記");
    collection.add("水滸傳");

    Iterator it = collection.iterator();

    while (it.hasNext()) {
      Object object = it.next();
      System.out.println(object);
    }

    it.remove(); // 如果未調(diào)用next方法,則會拋出IllegalStateException異常
    System.out.println(collection);
  }
}

輸出結果:

紅樓夢
三國演義
西游記
水滸傳
[紅樓夢, 三國演義, 西游記]

至此,Collection接口的方法介紹完畢。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Springboot項目的搭建教程(分離出common父依賴)

    Springboot項目的搭建教程(分離出common父依賴)

    這篇文章主要介紹了Springboot項目的搭建教程(分離出common父依賴),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • MybatisPlus 不修改全局策略和字段注解如何將字段更新為null

    MybatisPlus 不修改全局策略和字段注解如何將字段更新為null

    這篇文章主要介紹了MybatisPlus 不修改全局策略和字段注解如何將字段更新為null,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • java8日期工具類封裝的實戰(zhàn)記錄

    java8日期工具類封裝的實戰(zhàn)記錄

    java time包中的是類是不可變且線程安全的,新的時間及日期API位于java.time中,下面這篇文章主要給大家介紹了關于java8日期工具類封裝的相關資料,需要的朋友可以參考下
    2021-09-09
  • 詳解Java的Struts框架中棧值和OGNL的使用

    詳解Java的Struts框架中棧值和OGNL的使用

    這篇文章主要介紹了Java的Struts框架中棧值和OGNL的使用,Struts框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-11-11
  • Springboot一個注解搞定返回參數(shù)key轉(zhuǎn)換功能

    Springboot一個注解搞定返回參數(shù)key轉(zhuǎn)換功能

    平時在搬磚的時候,大家有沒有遇到過這樣場景,由于各種因素導致,一個接口返回的數(shù)據(jù)里面的key是A,?但是客戶端(前端)要求返回的key不叫A叫Aa?。也就是返回的值不變,就是key換了。本文將通過一個注解搞定返回參數(shù)key轉(zhuǎn)換,需要的可以了解一下
    2022-10-10
  • 利用Kafka動態(tài)調(diào)整topic分區(qū)partition

    利用Kafka動態(tài)調(diào)整topic分區(qū)partition

    這篇文章主要介紹了利用Kafka動態(tài)調(diào)整topic分區(qū)partition問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實例

    SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實例

    這篇文章主要介紹了SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 使用Homebrew配置Java開發(fā)環(huán)境操作方法

    使用Homebrew配置Java開發(fā)環(huán)境操作方法

    下面小編就為大家?guī)硪黄褂肏omebrew配置Java開發(fā)環(huán)境操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 微服務之間如何通過feign調(diào)用接口上傳文件

    微服務之間如何通過feign調(diào)用接口上傳文件

    這篇文章主要介紹了微服務之間如何通過feign調(diào)用接口上傳文件的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot整合Mybatis-plus關鍵詞模糊查詢結果為空

    SpringBoot整合Mybatis-plus關鍵詞模糊查詢結果為空

    SpringBoot整合Mybatis-plus使用關鍵詞模糊查詢的時候,數(shù)據(jù)庫中有數(shù)據(jù),但是無法查找出來,本文就來介紹一下SpringBoot整合Mybatis-plus關鍵詞模糊查詢結果為空的解決方法
    2025-04-04

最新評論