017Java基础之集合(Collection->Set)

本文详细介绍了Java中的Set接口及其常用方法,包括无序性、不允许重复的特点。深入探讨了HashSet的实现原理,指出其基于HashMap,并且不保证元素顺序。此外,还分析了LinkedHashSet,其底层实现为LinkedHashMap,保证了元素的插入顺序。
摘要由CSDN通过智能技术生成

1、Set 接口和常用方法

1.1、Set 接口基本介绍

(1)Set接口的实现子类的元素是无序的,即添加和去除的顺序不同,但是一旦顺序确定了之后取出的顺序就不会改变,没有索引
(2)不允许元素重复,所以最多能包含一个null

1.2、Set 接口的常用方法

和 List 接口一样, Set 接口也是 Collection 的子接口,因此,常用方法和 Collection 接口一样.

1.3、Set 接口的遍历方式

通Collection的遍历方式一样,因为Set是Collection的子接口
(1)迭代器遍历
(2)增强for循环
注意:因为Set接口的实现子类没有索引,所以不能想List一样使用索引的方式来遍历或获取元素

1.4、Set 接口的常用方法举例
package com.francis.collenction_.set_;

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

/**
 * @author Francis
 * @create 2021-09-20 22:18
 */
public class SetMethod {
   
    public static void main(String[] args) {
   
//1. 以 Set 接口的实现类 HashSet 来讲解 Set 接口的方法
//2. set 接口的实现类的对象(Set 接口对象), 不能存放重复的元素, 可以添加一个 null
//3. set 接口对象存放数据是无序(即添加的顺序和取出的顺序不一致)
//4. 注意:取出的顺序的顺序虽然不是添加的顺序,但是他的固定.
        Set set = new HashSet();
        set.add("john");
        set.add("lucy");
        set.add("john");//重复
        set.add("jack");
        set.add("hsp");
        set.add("mary");
        set.add(null);//
        set.add(null);//再次添加 null
        for (int i = 0; i < 10; i++) {
   
            System.out.println("set=" + set);
        }
//遍历
//方式 1: 使用迭代器
        System.out.println("=====使用迭代器====");
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
   
            Object obj = iterator.next();
            System.out.println("obj=" + obj);
        }
        set.remove(null);
//方式 2: 增强 for
        System.out.println("=====增强 for====");
        for (Object o : set) {
   
            System.out.println("o=" + o);
        }
//set 接口对象,不能通过索引来获取
    }
}

2、Set 接口实现类-HashSet

2.1、HashSet 的全面说明

(1)HashSet实现了Set接口
(2)HashSet实际上是HashMap
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值