Set集合(接口)的实现类(子类)——TreeSet 类

TreeSet

TreeSet类是Set接口的一个实现类,主要作用是用于对对象的排序以及确定存入对象的唯一性。TreeSet 是SortedSet(排序l集) 接口的实现类,正如SortedSet 名字所暗示的, TreeSet 可以确保集合元素处于排序状态。

1、TreeSet类概述

  • 使用元素的自然顺序对元素进行排序
  • 或者根据创建 set 时提供的 Comparator 进行排序
  • 具体取决于使用的构造方法。

2、TreeSet是如何保证元素的排序和唯一性的 

  • 底层数据结构是红黑树(红黑树是一种自平衡的二叉树)

自然排序

代码实现: TreeSet存储Integer类型的元素并遍历

package cn.wen_01;

import java.util.TreeSet;

/*
 * TreeSet:能够对元素按照某种规则进行排序。
 * 排序有两种方式
 * A:自然排序
 * B:比较器排序
 * 
 * TreeSet集合的特点:排序和唯一
 * 
 * 通过观察TreeSet的add()方法,知道最终要看TreeMap的put()方法。
 */
public class TreeSetDemo {
	public static void main(String[] args) {
		// 创建集合对象
		// 自然顺序进行排序
		TreeSet<Integer> ts = new TreeSet<Integer>();

		// 创建元素并添加
		// 20,18,23,22,17,24,19,18,24
		ts.add(20);
		ts.add(18);
		ts.add(23);
		ts.add(22);
		ts.add(17);
		ts.add(24);
		ts.add(19);
		ts.add(18);
		ts.add(24);

		// 遍历
		for (Integer i : ts) {
			System.out.println(i);
		}
	}
}

 源码大致如下,看不懂就跳过。

interface Collection {...}

interface Set extends Collection {...}

interface NavigableMap {

}

class TreeMap implements NavigableMap {
	 public V put(K key, V value) {
        Entry<K,V>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值