Home > Java > javaTutorial > Simple analysis of the source code of Set in Java

Simple analysis of the source code of Set in Java

不言
Release: 2018-09-20 15:22:25
Original
2333 people have browsed it

This article brings you a simple analysis of the source code of Set in Java. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

The Set interface inherits the collection interface, and the methods inside all exist in the collection.

The main implementation classes of Set are: HashSet, TreeSet

HashSet source code

//HashSet的继承关系
public class HashSet<E>    
extends AbstractSet<E>    
implements Set<E>, Cloneable, java.io.Serializable
Copy after login

//由此可以看出hashSet底层实现是用HashMap
private transient HashMap<E,Object> map;
public HashSet() {
        map = new HashMap<>();
    }
Copy after login

Through the following method, we can see that the implementation method of HashSet is the map operation

//遍历    
    public Iterator<E> iterator() {
           return map.keySet().iterator();
    }
    //计算长度
    public int size() {
        return map.size();
    }
    //判断是否为空
    public boolean isEmpty() {
        return map.isEmpty();
    }
    //添加
     public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }
Copy after login

TreeSet source code

//TreeSet的继承关系
public class TreeSet<E> extends AbstractSet<E>    
implements NavigableSet<E>, Cloneable, java.io.Serializable
Copy after login

The above is the detailed content of Simple analysis of the source code of Set in Java. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template