Set接口_HashSet常用方法_JDK源码解读

版权声明: https://blog.csdn.net/weixin_40072979/article/details/82966003

Set 接口继承自 Collection ,Set 没有新增方法,方法和 Collection 保持一致,

Set 容器的特点:无序,不可重复,无序指Set 中的元素没有索引,我们只能遍历查找,不重复指不允许加入重复的元素,更确切的说,新元素如果和Set 中某个元素通过 equals() 方法对比为 true,则不能加入,甚至,Set 中只能放一个 null 元素,不能多个。

Set 常用的实现类:HashSet, TreeSet 等,一般常用 HashSet

HashSet 的源码:底层是一个 HashMap, Set 里面添加的所有元素都作为 HashMap 中的 key, value 统一都为Object, 这就是为什么Set 中元素不能重复的原因(HashMap 中 key 不能重复)

package com.jianshun;

import java.util.HashSet;
import java.util.Set;

/**
 *测试HashSet的基本方法
 *Set:没有顺序,不可重复
 *List: 有顺序,可以重复
 * @author Administrator
 *
 */
public class TestHashSet {

	public static void main(String[] args) {
		Set<String> set1 = new HashSet<String>();
		set1.add("aa");
		set1.add("bb");
		set1.add("aa");
		System.out.println(set1);
		set1.remove("bb");
		System.out.println(set1);
		
		Set<String> set2 = new HashSet<String>();
		set2.add("高琪");
		set2.addAll(set1);
		System.out.println(set2);
		
	}

}

// [aa, bb]
// [aa]
// [aa, 高琪]
 

猜你喜欢

转载自blog.csdn.net/weixin_40072979/article/details/82966003