java 集合之Set

原创 2016年08月30日 09:51:43

Set的特点是 无序,无下标,元素不可重复,我们看一下它的实现类

HashSet

public static void main(String[] args) {
		Set<String> set = new HashSet<String>();
		set.add("1");
}
当我们new 一个HashSet的时候
/**
     * Constructs a new, empty set; the backing <tt>HashMap</tt> instance has
     * default initial capacity (16) and load factor (0.75).
     */
    public HashSet() {
        map = new HashMap<>();
    }
其他就是new 了一个HashMap,我们add的时候,
/**
     * Adds the specified element to this set if it is not already present.
     * More formally, adds the specified element <tt>e</tt> to this set if
     * this set contains no element <tt>e2</tt> such that
     * <tt>(e==null ? e2==null : e.equals(e2))</tt>.
     * If this set already contains the element, the call leaves the set
     * unchanged and returns <tt>false</tt>.
     *
     * @param e element to be added to this set
     * @return <tt>true</tt> if this set did not already contain the specified
     * element
     */
    public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }

其实就是将我们要放入的元素作为map的key存放,value是一个object对象

// Dummy value to associate with an Object in the backing Map
    private static final Object PRESENT = new Object();
其他的它底层实现就是HashMap,我们知道HashMap的键对象,存储是根据哈希算法,具体可以参考我的另一篇文章

http://blog.csdn.net/xu511739113/article/details/52366754

所以如果是自定义的对象,我们需要重写equals和hashCode方法。

LinkedHashSet的特点是可以保留插入顺序。要注意,如果要使用LinkedHashSet也需要重写equals和hashCode方法。


版权声明:本文为博主原创文章,未经博主允许不得转载。

java集合知识-map、set等

  • 2012年12月13日 20:41
  • 7KB
  • 下载

java 常用集合list与Set、Map区别及适用场景总结

list与Set、Map区别及适用场景

JAVA集合map、list、set详解

  • 2017年11月03日 17:36
  • 4KB
  • 下载

Java集合框架总结:Set接口的使用

Set集合里多个对象之间没有明显的顺序。具体详细方法请参考API文档(可见身边随时带上API文档有多重要),基本与Collection方法相同。只是行为不同(Set不允许包含重复元素)。 AD:...

java中List、Set、Map、Properties集合的遍历方法总结

一、遍历 List 集合public class TransList { public static void main(String[] args) { TransList t...

java中获取一个集合(Set)的子集的方法

想获取一个链表(List)的子集,可以直接使用subList方法,但是集合(Set)并没有类似的subSet的方法。 有些应用场景需要获取一个集合的子集,这时候该怎么做呢? 最容易想到的方式,就是构造...
  • mj158518
  • mj158518
  • 2016年02月05日 20:44
  • 10153

[学习笔记]Java集合框架之Set集合

Set集合 特点 Set集合中的元素是唯一的,不可重复(取决于hashCode和equals方法),也就是说具有唯一性。Set集合中元素不保证存取顺序,并不存在索引。 继承关...
  • jacobvv
  • jacobvv
  • 2014年12月14日 22:45
  • 1881
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 集合之Set
举报原因:
原因补充:

(最多只允许输入30个字)