美文网首页
JAVA 核心笔记 || [xxx] 集合 之 TreeSet

JAVA 核心笔记 || [xxx] 集合 之 TreeSet

作者: 魔介 | 来源:发表于2018-12-03 09:31 被阅读0次

TreeSet

  • TreeSet 中的元素是有序的,
  • 提供有 访问第一个元素, 最后一个元素, 前一个元素, 后一个元素, 截取子集等方法。
  • 添加到TreeSet 中的元素, 必须是实现了 Comparable 接口的(第一个元素除外)

TreeSet 支持两种排序方法

  • 自然排序 [默认]
  • 定制排序

使用

TreeSetLearn.java

import java.util.TreeSet;

public class TreeSetLearn{
    public static void main(String[] args){
        TreeSet ts = new TreeSet<Integer>();
        ts.add(9);
        ts.add(7);
        ts.add(0);
        ts.add(5);
        ts.add(-1);
        //输出 TreeSet元素
        System.out.println( ts );
        //输出集合中的第一个元素
        System.out.println( ts.first() );
        //输出集合中的最后一个元素
        System.out.println( ts.last() );
        //输出小于5的字迹
        System.out.println( ts.headSet(5) );
        // 输出大于 等于 5的子集
        System.out.println( ts.tailSet(5) );


    }
}

输出

[-1, 0, 5, 7, 9]
-1
9
[-1, 0]
[5, 7, 9]

定制排序

  • 定制排序必须在创建 TreeSet 时候 提供 Comparator 对象与 TreeSet 关联, 并且 由 Comparator 对象中的 compare 方法实现排序.

Compare1Learn.java

import java.util.Comparator;
import java.util.TreeSet;

public class Compare1Learn{
    public static void main(String[] args){
        TreeSet ts = new TreeSet( new Comparator() {
            public int compare(Object o1, Object o2){
                int v1 = (int)o1;
                int v2 = (int)o2;
                if(v1 > v2){
                    return -1;
                }
                else if( v1 == v2){
                    return 0;
                }
                else{
                    return 1;
                }

            }
        });

        ts.add(5);
        ts.add(-4);
        ts.add(9);
        ts.add(0);

        System.out.println( ts );

    }
}

输出

[9, 5, 0, -4]

相关文章

网友评论

      本文标题:JAVA 核心笔记 || [xxx] 集合 之 TreeSet

      本文链接:https://www.haomeiwen.com/subject/ogmecqtx.html