java Set ,HashSet

API中比较 set 和 collection  集合都有一样的方法

* A:Set集合概述及特点
* 通过API查看即可
* B:案例演示
* HashSet存储字符串并遍历
*
HashSet<String> hs = new HashSet<>();
boolean b1 = hs.add("a");
boolean b2 = hs.add("a"); //当存储不成功的时候,返回false

System.out.println(b1);
System.out.println(b2);
for(String s : hs) {
System.out.println(s);
}

HashSet存储自定义对象保证元素唯一性
* A:案例演示
* 存储自定义对象,并保证元素唯一性。

HashSet<Person> hs = new HashSet<>();
hs.add(new Person("张三", 23));
hs.add(new Person("张三", 23));
hs.add(new Person("李四", 23));
hs.add(new Person("李四", 23));
hs.add(new Person("王五", 23));
hs.add(new Person("赵六", 23));
* 重写hashCode()和equals()方法

public static void demo1() {
HashSet<String> hs = new HashSet<>(); //创建HashSet对象
boolean b1 = hs.add("a");
boolean b2 = hs.add("a"); //当向set集合中存储重复元素的时候返回为false
hs.add("b");
hs.add("c");
hs.add("d");
System.out.println(hs); //HashSet的继承体系中有重写toString方法
System.out.println(b1);
System.out.println(b2);

for (String string : hs) { //只要能用迭代器迭代的,就可以使用增强for循环遍历
System.out.println(string);
}
}

时间: 2024-12-21 12:06:40

java Set ,HashSet的相关文章

【java】HashSet

1 package com.tn.hashSet; 2 3 public class Person { 4 private int id; 5 private String name; 6 private String birthday; 7 public Person(int id, String name, String birthday) { 8 super(); 9 this.id = id; 10 this.name = name; 11 this.birthday=birthday;

Java的HashSet类

如果要查找一个集合中是否包含了某个对象,那么就需要把这个对象和这个集合中的每个对象依次进行比较和判断,直到找到这个对象为止,或者把所有对象都比较一次为止(如果最后一个对象才是要查找的对象,或者集合中没有包含要查找的对象).当集合中的对象数量较多时,效率就很低.为了提高效率,提出了Hash算法.Hash算法对每一个对象都计算出一个Hash码,根据Hash码把对象分配到某个存储区域中,比如一个集合包含了很多人,根据国籍,中国人是一个存储区域,美国人是一个存储区域,英国人是一个存储区域,.......

Java集合 -- HashSet 和 HashMap

HashSet 集合 HashMap 集合 HashSet集合 1.1 Set 接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B:没有索引 C:存入集合的元素没有重复 1.2 HashSet 使用&唯一性原理 1.2.1 HashSet的使用 1.2.1.1 案例代码一: public class HashSetDemo2 { public static void main(String[] args) { //创建集合对象 HashSet<Student>

Java中HashSet的解读

一. HashSet源代码 HashSet 的实现   对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSet 的源代码,可以看到如下代码:  Java代码  public class HashSet<E>    extends AbstractSet<E>    implements Set<E>, Cloneable, java.io.Seri

Java中HashSet使用源码演示

如下的代码段是关于Java中HashSet使用演示的代码,希望对各位朋友有所好处. import java.util.HashSet; public class myHashsetExample { public static void main(String[] args) { HashSet<String> languages = new HashSet<String>(); languages.add("hindi"); languages.add(&qu

java基础----&gt;hashSet的简单分析(一)

对于HashSet而言,它是基于HashMap实现的,底层采用HashMap来保存元素的.今天我们就简单的分析一下它的实现. HashSet的简单分析 一.hashSet的成员变量组成 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable private transient HashMap<E,Object> map;

java中HashSet详解

HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSet 的源代码,可以看到如下代码: Java代码   public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable { // 使用 HashM

Java集合-HashSet

HashSet类,是存在于java.util包中的类 .同时也被称为集合,该容器中只能存储不重复的对象.底层是由HashMap来存储的,因为HashSet不能重复,你知道HashMap的键不能重复就明白了这一个原理了,所以对于HashMap很熟悉的话对于HashSet就能够很快的知道底层实现.HashMap传送门(HashMap源码分析). HashSet概述 此类实现了Set接口,由哈希表(实际上是HashMap实例)支持. 对集合的迭代次序不作任何保证; 特别是不会保证这种顺序会持久不变(不

java.util.HashSet源码分析

public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable HashSet实现Set接口,内部维护一个HashMap实例变量.不保证顺序,允许null元素. 对于基本的操作,如add,remove,contains,size,只需要常量的时间复杂度. 不是线程安全的,如果在多线程环境下,需要被同步化,如调用方法Collections.s

Java集合---HashSet的源码分析

一.  HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素. 二.  HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成, HashSet的源代码如下: 1 public c