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

Java基礎(chǔ)之集合Set詳解

 更新時間:2021年05月10日 09:51:01   作者:小亮點科技  
這篇文章主要介紹了Java基礎(chǔ)之集合Set詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下

一、概述

Set是Java中的集合類,提供了一種無順序,不重復(fù)的集合。常用的子類包括HashSet, TreeSet等。

  • HashSet底層使用HashMap實現(xiàn),根據(jù)元素的hashCode和equals來判斷是否為重復(fù)元素。當(dāng)元素的hashCode相同且equals返回true時則認為是重復(fù)元素。因為使用了hash算法所以HashSet有很好的添加和訪問性能??梢苑湃雗ull但只能放一個null
  • TreeSet底層使用紅黑樹實現(xiàn),Set上的元素被放在一個自動排序的紅黑樹中。不能放入null

二、Set的常用方法

  • add() 向Set中添加元素
  • size() 返加Set的大小,即Set中元素的數(shù)量
  • remove(Object o) 從Set上刪除元素
  • boolean contains(Object o) 檢查Set中是否包含某個元素,包含返回true,不包含返回false
  • iterator() 返回Set的迭代器
  • clear() 清空Setis
  • Empty() 檢查Set是否為空,為空返回true, 否則返回false
package collect;

import java.util.HashSet;
import java.util.Set;

/**
 * [簡要描述]:Set使用
 * [詳細描述]:
 *
 * @author Smalight Lv
 * @version 1.0, 2021/5/6 15:15
 * @since JDK 1.8
 */
public class SetTest1 {
    public static void main(String[] args) {
        Set<String> set =  new HashSet<>();

        //添加元素到Set
        set.add("張三");
        set.add("李四");
        set.add("王五");

        //打印Set
        System.out.println(set);

        //再加入一個王五,不能添加成功
        boolean rst = set.add("王五");
        System.out.println("添加結(jié)果:" + rst);
        System.out.println(set);

        //HashSet可以加入null,但只能加入一個null
        rst = set.add(null);
        System.out.println("添加第一個null:" + rst);
        System.out.println(set);
        rst = set.add(null);
        System.out.println("添加第二個null:" + rst);
        System.out.println(set);

        //判斷Set中是否包含某個元素
        rst = set.contains("張三");
        System.out.println("是否包含元素\"張三\":" + rst);

        //刪除元素
        set.remove("張三");
        System.out.println(set);

        //判斷Set中是否包含某個元素
        rst = set.contains("張三");
        System.out.println("是否包含元素\"張三\":" + rst);

        //Set的大小,即Set中元素的數(shù)量
        int size = set.size();
        System.out.println("Set的大?。? + size);

        //判斷Set是否為空
        boolean isEmpty = set.isEmpty();
        System.out.println("Set是否為空:" + isEmpty);

        //清空Set
        set.clear();
        System.out.println(set);

        //判斷Set是否為空
        isEmpty = set.isEmpty();
        System.out.println("Set是否為空:" + isEmpty);

    }
}

運行結(jié)果:

[李四, 張三, 王五]
添加結(jié)果:false
[李四, 張三, 王五]
添加第一個null:true
[null, 李四, 張三, 王五]
添加第二個null:false
[null, 李四, 張三, 王五]
是否包含元素"張三":true
[null, 李四, 王五]
是否包含元素"張三":false
Set的大小:3
Set是否為空:false
[]
Set是否為空:true

注:TreeSet不能添加null元素,添加null時會拋出NullPointerException異常

package collect;

import java.util.Set;
import java.util.TreeSet;

/**
 * [簡要描述]: Set
 * [詳細描述]:
 *
 * @author Smalight Lv
 * @version 1.0, 2021/5/6 16:28
 * @since JDK 1.8
 */
public class SetTest2 {
    public static void main(String[] args) {
        Set<String> set =  new TreeSet<>();

        //TreeSet不能加入null
        boolean rst = set.add(null);
        System.out.println("添加第一個null:" + rst);
        System.out.println(set);

    }
}

運行結(jié)果:

Exception in thread "main" java.lang.NullPointerException
 at java.util.TreeMap.compare(TreeMap.java:1294)
 at java.util.TreeMap.put(TreeMap.java:538)
 at java.util.TreeSet.add(TreeSet.java:255)
 at collect.SetTest2.main(SetTest2.java:19)

package collect;

import java.util.TreeSet;

/**
 * [簡要描述]: Set
 * [詳細描述]:
 *
 * @author Smalight Lv
 * @version 1.0, 2021/5/6 16:28
 * @since JDK 1.8
 */
public class SetTest3 {
    public static void main(String[] args) {
        TreeSet<String> set =  new TreeSet<>();

        //添加元素到Set
        set.add("B");
        set.add("A");
        set.add("李四");
        set.add("王五");
        set.add("張三");
        set.add("a");


        //打印Set
        System.out.println(set);

        //再加入一個王五,不能添加成功
        boolean rst = set.add("王五");
        System.out.println("添加結(jié)果:" + rst);
        System.out.println(set);

        //獲取Set中的第一個元素
        System.out.println(set.first());
        //獲取Set中的最后一個元素
        System.out.println(set.last());

        //判斷Set中是否包含某個元素
        rst = set.contains("張三");
        System.out.println("是否包含元素\"張三\":" + rst);

        //刪除元素
        set.remove("張三");
        System.out.println(set);

        //判斷Set中是否包含某個元素
        rst = set.contains("張三");
        System.out.println("是否包含元素\"張三\":" + rst);

        //Set的大小,即Set中元素的數(shù)量
        int size = set.size();
        System.out.println("Set的大小:" + size);

        //判斷Set是否為空
        boolean isEmpty = set.isEmpty();
        System.out.println("Set是否為空:" + isEmpty);

        //清空Set
        set.clear();
        System.out.println(set);

        //判斷Set是否為空
        isEmpty = set.isEmpty();
        System.out.println("Set是否為空:" + isEmpty);


    }
}

運行結(jié)果:

[A, B, a, 張三, 李四, 王五]
添加結(jié)果:false
[A, B, a, 張三, 李四, 王五]
A
王五
是否包含元素"張三":true
[A, B, a, 李四, 王五]
是否包含元素"張三":false
Set的大?。?
Set是否為空:false
[]
Set是否為空:true

三、Set的遍歷

3.1增強for循環(huán)

package collect;

import java.util.HashSet;
import java.util.Set;

/**
 * [簡要描述]:增強for循環(huán)遍歷Set
 * [詳細描述]:
 *
 * @author Smalight Lv
 * @version 1.0, 2021/5/6 17:01
 * @since JDK 1.8
 */
public class SetTest4 {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();

        set.add("唐僧");
        set.add("孫悟空");
        set.add("豬悟能");
        set.add("沙悟凈");
        System.out.println(set);

        for(String item:set){
            System.out.println(item);
        }
    }
}

運行結(jié)果:

[豬悟能, 孫悟空, 沙悟凈, 唐僧]
豬悟能
孫悟空
沙悟凈
唐僧

3.2 迭代器遍歷

package collect;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * [簡要描述]:增強for循環(huán)遍歷Set
 * [詳細描述]:
 *
 * @author Smalight Lv
 * @version 1.0, 2021/5/6 17:01
 * @since JDK 1.8
 */
public class SetTest5 {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();

        set.add("唐僧");
        set.add("孫悟空");
        set.add("豬悟能");
        set.add("沙悟凈");
        System.out.println(set);

        Iterator<String> iterator = set.iterator();

        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

    }
}

運行結(jié)果:

[豬悟能, 孫悟空, 沙悟凈, 唐僧]
豬悟能
孫悟空
沙悟凈
唐僧

到此這篇關(guān)于Java基礎(chǔ)之集合Set詳解的文章就介紹到這了,更多相關(guān)Java集合Set內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring中EventListener的使用方式

    spring中EventListener的使用方式

    這篇文章主要介紹了spring中EventListener的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java中CountDownLatch進行多線程同步詳解及實例代碼

    Java中CountDownLatch進行多線程同步詳解及實例代碼

    這篇文章主要介紹了Java中CountDownLatch進行多線程同步詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java8 HashMap的實現(xiàn)原理分析

    Java8 HashMap的實現(xiàn)原理分析

    Java8之后新增挺多新東西,接下來通過本文給大家介紹Java8 HashMap的實現(xiàn)原理分析,對java8 hashmap實現(xiàn)原理相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • mybatis項目CRUD步驟實例詳解

    mybatis項目CRUD步驟實例詳解

    這篇文章主要介紹了mybatis項目CRUD步驟,包括pom.xml引入相應(yīng)的依賴,在resources目錄下寫配置文件,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Java源碼解析之HashMap的put、resize方法詳解

    Java源碼解析之HashMap的put、resize方法詳解

    這篇文章主要介紹了Java源碼解析之HashMap的put、resize方法詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-04-04
  • Java JNDI案例詳解

    Java JNDI案例詳解

    這篇文章主要介紹了Java JNDI案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java+OpenCV調(diào)用攝像頭實現(xiàn)拍照功能

    Java+OpenCV調(diào)用攝像頭實現(xiàn)拍照功能

    隨著我們對環(huán)境、Mat基本使用越來越熟練、Java Swing也逐步熟悉了起來。本文將通過OpenCV驅(qū)動攝像頭實現(xiàn)識臉和拍照功能,需要的可以參考一下
    2022-03-03
  • Spring Boot中進行 文件上傳和 文件下載功能實現(xiàn)

    Spring Boot中進行 文件上傳和 文件下載功能實現(xiàn)

    開發(fā)Wb應(yīng)用時,文件上傳是很常見的一個需求,瀏覽器 通過 表單形式 將 文件 以 流的形式傳遞 給 服務(wù)器,服務(wù)器再對上傳的數(shù)據(jù)解析處理,下面將通過一個案例講解使用 SpringBoot 實現(xiàn) 文件上傳,感興趣的朋友一起看看吧
    2024-07-07
  • idea項目代碼打包為jar包的超詳細步驟

    idea項目代碼打包為jar包的超詳細步驟

    因為業(yè)務(wù)開發(fā)場景需要,將開發(fā)項目中的Java類打成一個jar包引入到外部工具中,下面這篇文章主要給大家介紹了關(guān)于idea項目代碼打包為jar包的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Java語言Iterator轉(zhuǎn)換成 List的方法

    Java語言Iterator轉(zhuǎn)換成 List的方法

    在 Java 中,迭代器(Iterator)是一種用于遍歷集合中元素的對象,它提供了一種簡單而一致的方式來訪問集合中的元素,而不需要暴露集合內(nèi)部的結(jié)構(gòu),這篇文章主要介紹了Java語言Iterator轉(zhuǎn)換成 List的方法,需要的朋友可以參考下
    2023-08-08

最新評論

五家渠市| 兰州市| 沈丘县| 隆子县| 万荣县| 甘肃省| 合川市| 普兰店市| 镇平县| 瓮安县| 虎林市| 大厂| 繁昌县| 沈丘县| 都江堰市| 洮南市| 沾益县| 诸暨市| 招远市| 镇远县| 温宿县| 黄梅县| 吉木乃县| 乌审旗| 宁河县| 太谷县| 房产| 阿勒泰市| 深泽县| 区。| 广水市| 东山县| 灌南县| 广灵县| 师宗县| 宝丰县| 巴彦淖尔市| 禄丰县| 义马市| 宕昌县| 松潘县|