java300集-set-HashSet

Set集合详解
本文深入探讨了Set接口的特点,包括存储唯一、无序对象的特性,以及常用的遍历方法如for-each和Iterator。通过实例展示了如何使用HashSet,并介绍了自定义实现HashSet的方法。文章还涵盖了在HashSet、HashMap或Hashtable中确保对象唯一性的策略,以及在TreeSet中设定排序依据的技巧。

• Set 接口存储一组唯一, 无序的对象

Set常用方法
• Set相对Collection没有增加任何方法

• Set的遍历方法
• for-each
• Iterator迭代器
• 无法使用for进行遍历(因为无序, 所以没有get(i))

• HashSet、 HashMap或Hashtable中对象唯一性判断
• 重写其hashCode()和equals()方法

• TreeSet中指明排序依据
• 实现Comparable接口
• 创建实现Compator接口的类。


package cn.bjsxt.collection;

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

/**
 * 测试Set的常用方法!
 * @author Administrator
 *
 */
public class TestSet {

	public static void main(String[] args) {
		Set set = new HashSet();
		set.add("aaa");
		set.add("bbb");
		set.add(new String("aaa"));
		System.out.println(set.size());
		System.out.println(set.contains("aaa"));
		set.remove("aaa");
		
	}

}

_容器_自定义实现HashSet

package cn.bjsxt.collection;

import java.util.HashMap;

/**
 * 自定义自己的HashSet
 * @author Administrator
 *
 */
public class SxtHashSet {

	HashMap map;
	private static final Object PRESENT = new Object();

	public SxtHashSet(){
		map = new HashMap();
	}
	
	public int size(){
		return map.size();
	}
	
	public void add(Object o){
		map.put(o, PRESENT);   //set的不可重复就是利用了map里面键对象的不可重复!
	}
	
	public static void main(String[] args) {
		SxtHashSet s = new SxtHashSet();
		s.add("aaa");
		s.add(new String("aaa"));
		System.out.println(s.size());
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值