Set子接口

Ø Collection 接口下又有另外一个比较常用的子接口为 Set 子接口,但是 Set 子接口并不像 List 子接口那样对于 Collection 接口进行了大量的扩充,而是简单的继承了 Collection 接口。也就是说在 Set 子接口里面是无法使用 get() 方法根据索引取得保存数据的操作。在 Set 子接口下有两个常用的子类: HashSet TreeSet

HashSet子类的特点

import java.util.HashSet;
import java.util.Set;
public class TestDemo {
	public static void main(String[] args) {
		Set<String> all = new HashSet<String>();	// 实例化Set接口
		all.add("q");	// 保存数据
		all.add("w");	// 保存数据
		all.add("e");	// 保存数据
		all.add("e"); 	// 重复数据
		System.out.println(all);	// 直接输出集合
	}
}

程序执行结果:

[q,w,e]

使用TreeSet子类

import java.util.Set;
import java.util.TreeSet;
public class TestDemo {
	public static void main(String[] args) {
		Set<String> all = new TreeSet<String>();	// 实例化Set接口
		all.add("q");	// 保存数据
		all.add("w");	// 保存数据
		all.add("e");	// 保存数据
		all.add("e"); 	// 重复数据
		System.out.println(all);	// 直接输出集合
	}
}

程序执行结果:

[q,w,e]

关于数据排序的说明

         TreeSet 子类保存的内容可以进行排序,但是其排序的依据是依据比较器接口( Comparable )实现的,即,如果现在要想利用 TreeSet 子类保存任意类的对象,那么该对象所在的类必须要实现 java.lang.Comparable 接口。

关于重复元素的说明

   TreeSet 利用 Comparable 接口实现重复元素的判断,但是这样的操作只适合于支持排序类集操作环境下。而其他的子类(例如: HashSet )如果要想消除重复元素,则必须依靠 Object 类中所提供的两个方法:
   取得哈希码: public int hashCode ()
   先判断对象的哈希码是否相同,依靠哈希码取得一个对象的内容;
   对象比较: public boolean equals(Object obj )
    再将对象的属性进行依次的比较。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值