跟王老师学集合(八):Set接口和HashSet类

Set接口和HashSet类

主讲人:王少华  QQ群号:483773664

学习目标

1、理解Set接口的特点

2、掌握HashSet类使用

一、Set接口

Set集合中的元素,是无序的

Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add方法返回false,且新元素不会被加入

二、HashSet类

HashSet是Set的典型的实现,大多数时候,使用Set集合时就是使用HashSet

(一)HashSet的特点

1、不能保证元素的排列顺序,顺序有可能发生变化


1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class Test {

    public static void main(String[] args) {

        String name1 = "孙悟空";

        String name2 = "猪八戒";

        String name3 = "沙僧";

        String name4 = "唐僧";

        Set nameSet = new HashSet();

        nameSet.add(name1);

        nameSet.add(name2);

        nameSet.add(name3);

        nameSet.add(name4);

        System.out.println(nameSet);

    }

}

2、HashSet不是同步的,如果多个线程访问一个HashSet,必须通过代码来保证其同步

3、可以存储null


1

nameSet.add(null);

(二)常用方法


1

2

3

4

5

6

7

8

9

10

public class TestAdd {

    public static void main(String[] args) {

        Set set = new HashSet();

        set.add(new String("隔壁老王"));

        //因为两个对象通过equals方法比较相等,所以添加失败

        boolean bool = set.add(new String("隔壁老王"));

        System.out.println("bool:"+bool);

        System.out.println(set);

    }

}

三、视频地址

http://edu.51cto.com/course/course_id-6028.html

来自为知笔记(Wiz)

时间: 2024-11-10 20:47:42

跟王老师学集合(八):Set接口和HashSet类的相关文章

跟王老师学集合(十一)java中Comparator的用法

Java中Comparator的用法 主讲人:王少华  QQ群号:483773664 在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标. 接下来我们模拟下在集合对象中对日期属性进行排序 一.实体类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package chapter07_11; public class Person {     private int a

跟王老师学集合(十):操作集合的工具类:Collections

操作集合的工具类:Collections 主讲人:王少华  QQ群号:483773664 Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合元素实现同步控制等方法. 一.排序操作 (一).方法 Collections提供了如下几个方法用于对List集合元素进行排序 static void reverse(List list):反转指定List集合中元素的顺序 static void shu

跟王老师学反射(二):Java类的加载、连接和初始化

跟王老师学反射(二):Java类的加载.连接和初始化 主讲教师:王少华   QQ群号:483773664 学习内容: 了解类的加载.连接和初始化 一.类的生命周期 当我们编写一个java的源文件后,经过编译会生成一个后缀名为class的文件,这种文件叫做字节码文件,只有这种字节码文件才能够在java虚拟机中运行,java类的生命周期就是指一个class文件从加载到卸载的全过程.一个java类的完整的生命周期会经历加载.连接.初始化.使用.和卸载五个阶段,当然也有在加载或者连接之后没有被初始化就直

跟王老师学反射(三):Class类:获得Class对象

跟王老师学反射(三):Class类:获得Class对象 主讲教师:王少华   QQ群号:483773664 学习内容 掌握获得Class对象的三种方式 理解这三种方式的区别 一.获得Class对象 前面我们已经领略了反射的魅力了,我们知道,利用反射的关键是要获得"图纸"Class对象,那么怎么获得这个Class对象呢!!! 每个类被加载之后,系统会为该类生成一个对应的Class对象,通过该Class对象就可以访问JVM中的这个类.Java程序获得Class对象有如下三种方式: (一)调

跟王老师学反射(四):Class类:从Class类中获取信息

跟王老师学反射(四)Class类:从Class类中获取信息 主讲教师:王少华   QQ群号:483773664 学习内容 获得class类中的信息 根据我们以前学过的一个Java类有以下几部组成,如下代码所示 一.访问Class对应的类所包含的构造方法 (一)public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回此Class对象所表示的类的指定public构造方法. parameterTypes参数是按

跟王老师学枚举(三):枚举类API

跟王老师学枚举(三):枚举API 主讲教师:王少华   QQ群号:483773664 一.枚举类API Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法.常用方法: name():返回此枚举常量的名称 ordinal():返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零 valueof(Class enumClass, String name):返回带指定名称的指定枚举类型的枚举常量 valueof(String name):返回带指定

跟王老师学枚举(四):枚举类练习

跟王老师学枚举(四):枚举的练习 主讲教师:王少华   QQ群号:483773664 一.需求 请编写一个关于星期几的枚举WeekDay 要求: 枚举值:Mon,Tue,Wed,Thu,Fri,Sat,Sun 该枚举要有一个方法,调用该方法返回中文格式的星期(星期一...) 二.参考代码 package chapter11_04;   public enum WeekDay {     Mon{         @Override         public String getChinaWe

跟王老师学集合(二)List接口

List接口 主讲人:王少华  QQ群号:483773664 学习目标 1.List接口的常用实现类 2.ArrayList类的使用 一.概述 在包:java.util包中 实现List接口的常用类有ArrayList和LinkedList 元素:对象(包括null).允许重复.存储有序 二.ArrayList集合类 (一)ArrayList集合类的特点 ArrayList实现了长度可变的数组 在内存中分配连续的空间. 优点:遍历元素和随机访问元素的效率比较高 (二)需求 使用集合存储多个狗狗的

跟王老师学集合(一)为什么要使用集合和Java集合概述

为什么要使用集合和Java集合概述 主讲人:王少华  QQ群号:483773664 学习目标 1 理解为什么使用集合 2 掌握Java集合框架 一.使用数组缺陷: 在电子宠物系统中,如果想存储多个宠物信息,可以使用数组来实现.例如,可以定义一个长度50的Dog类型的数组,存储多个Dog对象的信息.但是采用数组存在以下一些明显的缺陷: 数组长度固定不变,不能很好适应元素数量动态变化的情况.若要存储大于50个狗狗的信息,则数组长度不足:若只存储20个狗狗的信息,则造成内存空间浪费 可通过数组名.le