[19]-容器(集合)_Set

与世无争的帅哥 提交于 2020-03-17 11:03:22

Set 唯一 无序
有相同的元素就不在添加了
底层数据结构是哈希表
存放自定义类型时需要重写hashCode()方法级equals()方法
Hash表原理

/***

  • (1)调用hashCode()方法计算Hash码值

  • (2)根据y=k(x)这样的函数计算存储位置

  • (3)如果位置上没有元素,则将元素存储

  • (4)如果该位置上有元素,则需调用equals方法比较内容是否相同

*/

使用api大致和map相同

要注意的是
存放自定义类型时需要重写hashCode()方法级equals()方法

package com.lin.map;

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

public class TestHashSet {
  public static void main(String[] args) {
    //HashSet底层数组结构使用的是hash表  ,主结构数组, +链表
    //创建集合对象
    HashSet hs=new HashSet();
    hs.add("hello");
    System.out.println(  hs.add("world"));
    hs.add("java");
    System.out.println(hs.add("world"));
    System.out.println("集合中元素的个数:"+hs.size());
    System.out.println(hs);
    System.out.println(hs.contains("java")+"\t"+hs.contains("sql"));
    //使用迭代器遍历元素
    Iterator ite=hs.iterator();
    while(ite.hasNext()){
      System.out.println(ite.next());
    }

  }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!