IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 练习Java文档TreeSet -> 正文阅读

[Java知识库]练习Java文档TreeSet

import java.util.*;

public class TreeSetTest
{
	public static void main(String[] args)
	{
		//书上的例子1
		TreeSet nums = new TreeSet();
		nums.add(5);
		nums.add(2);
		nums.add(10);
		nums.add(-9);
		System.out.println(nums);
		System.out.println(nums.first());
		System.out.println(nums.last());
		System.out.println(nums.headSet(6));
		System.out.println(nums.tailSet(5));
		System.out.println(nums.subSet(-3,4));

		//自然排序(就是java基本库中已经帮你实现好的compareTo方法)
		//例子2,为了说明被添加到TreeSet中的类一定要实现Comparable接口,否则会报错
		//var ts = new TreeSet();
		//ts.add(new Err());//是运行时错误

		//例子3,存入TreeSet的实例应该是同一个类的实例,因为进行比较的时候,要变成同一个类,否则的话,会报错
		//var ts = new TreeSet();
		//ts.add(new String("疯狂Java讲义"));
		//ts.add(new Date());//也是运行时错误

		//例子4,为了说明TreeSet判断元素相等的标准是compareTo返回0
		var set = new TreeSet();
		var z1 = new Z(6);
		set.add(z1);
		System.out.println(set.add(z1));
		System.out.println(set);
		((Z)(set.first())).age = 9;
		System.out.println(((Z)(set.last())).age);

		//例子5,为了说明修改了TreeSet中元素的重要变量所带来的后果
		var ts = new TreeSet();
		ts.add(new R(5));	
		ts.add(new R(-3));
		ts.add(new R(9));
		ts.add(new R(-2));
		System.out.println(ts);
		//取出第一个元素
		var first = (R) ts.first();
		//对第一个元素的count赋值
		first.count = 20;
		//取出最后一个元素
		var last = (R) ts.last();
		//对最后一个元素的count赋值,与第二个元素的count相同
		last.count = -2;
		//再次输出,将看到TreeSet里的元素处于无序状态,且有重复元素
		System.out.println(ts);
		//删除实例变量被改变的元素,删除失败
		System.out.println(ts.remove(new R(-2)));
		System.out.println(ts);
		//删除实例变量没有被改变的元素,删除成功
		System.out.println(ts.remove(new R(5)));
		System.out.println(ts);

		//定制排序,例子6
		System.out.println();
		System.out.println("定制排序");
			
		ts = new TreeSet((o1,o2) ->
		{
			var m1 = (M) o1;
			var m2 = (M) o2;
			return m1.age > m2.age ? -1 : m1.age < m2.age ? 1:0;
		});
		ts.add(new M(5));
		ts.add(new M(-3));
		ts.add(new M(9));
		System.out.println(ts);

		//文档练习
		//构造器练习
		TreeSet ts2 = new TreeSet();
		ArrayList list = new ArrayList();
		list.add("a");
		ts2 = new TreeSet(list);
		System.out.println(ts2);
		ts2 = new TreeSet((o1 , o2 ) -> 
		{
			return (int)o1 > (int)o2 ? -1 : (int)o1 < (int)o2 ? 1 : 0;
		});
		ts2.add(1);
		ts2.add(2);
		System.out.println(ts2); 

		TreeSet ts3 = new TreeSet();
		ts3.add(7);
		ts3.add(8);
		TreeSet ts4 = new TreeSet(ts3);
		System.out.println(ts4);

		//方法练习
		ts4.add(111);
		ts4.addAll(ts2);
		System.out.println(ts4);
		System.out.println(ts4.ceiling(-1));

		//ts4.clear();
		TreeSet ts5 = (TreeSet) ts4.clone();	
		System.out.println(ts5);
		System.out.println(ts5.comparator());
		System.out.println(ts2.comparator());

		System.out.println(ts5.contains(111));
		System.out.println(ts5.contains(6));

		Iterator it = ts5.descendingIterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
		System.out.println(ts5);
		NavigableSet ns = ts5.descendingSet();
		System.out.println(ns);
		System.out.println(ts5.first());
		System.out.println(ts5.floor(1111));
		SortedSet ss = ts5.headSet(8);
		System.out.println(ss);
		NavigableSet ns2 = ts5.headSet(8,false);
		System.out.println(ns2);

		System.out.println(ts5.higher(100));
		System.out.println(ts5.isEmpty());
		//ts5.clear();
		//System.out.println(ts5.isEmpty());
		it = ts5.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
		System.out.println(ts5.last());
		System.out.println(ts5.lower(-7));
		System.out.println(ts5);
		System.out.println(ts5.pollFirst());
		System.out.println(ts5);
		System.out.println(ts5.pollLast());
		System.out.println(ts5);
		System.out.println(ts5.remove(-7));
		System.out.println(ts5);
		System.out.println(ts5.size());
		Spliterator spli = ts5.spliterator();
		System.out.println(spli.characteristics());

		ts5.add(9);
		ts5.add(10);
		ts5.add(11);
		ts5.add(12);
		ts5.add(13);
		ts5.add(14);
		ts5.add(15);
		System.out.println(ts5);
		System.out.println(ts5.subSet(10,true,13,false));
		System.out.println(ts5.subSet(10,13));
		System.out.println(ts5.tailSet(13));
		System.out.println(ts5.tailSet(13,false));
	}
}
class Err{} 
class Z implements Comparable
{
	int age ;
	public Z(int age)
	{
		this.age = age;
	}
	public boolean equals(Object obj)
	{
		return true;
	}
	public int compareTo(Object obj)
	{
		return 1;
	}
}

//例子4
class R implements Comparable
{
	int count;
	public R(int count)
	{
		this.count = count;
	}
	public String toString()
	{
		return "R[count:"+count+"]";
	}
	public boolean equals(Object obj)
	{
		if(this == obj)
			return true;
		if(obj != null && obj.getClass() == R.class)
		{
			var r = (R) obj;
			return this.count == r.count;
		}
		return false;
	}
	public int compareTo(Object obj)
	{
		var r = (R) obj;
		return count>r.count ? 1: 
			count < r.count ? -1: 0;
	}
}
//例子6
class M
{
	int age;
	public M(int age)
	{
		this.age =age;
	}
	public String toString()
	{
		return "M[age:"+age+"]";
	}
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:27:33  更:2022-04-18 17:30:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:20:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码