Java——集合(TreeSet)

package com.wsq.set;        //这里进行调用Person()方法,要进行导包
import java.util.TreeSet;
import com.wsq.bean.Person;
public class Demo3_TreeSet {
/*** TreeSet集合是用来对元素进行排序的,同样它也可以保证元素的唯一* 当compareTo()方法返回0的时候,只有一个元素* 当compareTo()方法返回正数的时候,怎么存,就怎么取* 当compareTo()方法返回负数的时候,集合会倒序存储* */public static void main(String[] args) {
//      demo1();
//      demo2();
//      demo3();
//      demo4();  }private static void demo4() {TreeSet<Person> yy = new TreeSet<>();yy.add(new Person("zhangshan",23));yy.add(new Person("lisi",13));yy.add(new Person("wangwu",33));yy.add(new Person("zhaoliu",43));yy.add(new Person("aaaa",53));System.out.println(yy);
}private static void demo3() {TreeSet<Person> wsq = new TreeSet<>();wsq.add(new Person("李四",13));wsq.add(new Person("张三",23));wsq.add(new Person("王五",43));wsq.add(new Person("赵六",33));System.out.println('张' + 0);System.out.println('李' + 0);System.out.println('王' + 0);System.out.println('赵' + 0);System.out.println(wsq);
}private static void demo2() {TreeSet<Person> wsq = new TreeSet<>();/*** TreeSet底层是一个二叉树:两个叉,小的存储在左边(返回负数),大的存储在右边(返回正数),相等就不存(返回0);* CompareTo()方法,在TreeSet集合如何存储元素,取决于CompareTo()方法的返回值* * 1,第一次返回0,集合中只有一个元素* 2,第二次返回-1(负数),集合会将存储的元素倒序* 3,第三次返回1(正数),集合会怎么存。怎么取*  */wsq.add(new Person("张三",23));wsq.add(new Person("李四",13));wsq.add(new Person("周七",13));wsq.add(new Person("王五",43));wsq.add(new Person("赵六",33));System.out.println(wsq);
}private static void demo1() {                       // TreeSet集合是用来对元素进行排序的,同样它也可以保证元素的唯一,即系统会自动按顺序排序TreeSet<Integer> yy = new TreeSet<>();yy.add(3);yy.add(1);yy.add(1);yy.add(2);yy.add(2);yy.add(3);yy.add(3);System.out.println(yy);
}}
package com.wsq.bean;public class Person implements Comparable<Person>{//实现接口之后,要重写Comparable里面的CompareTo(Person o)这个抽象方法private String name;private int age;public Person() {super();}public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Person other = (Person) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}/*public int compareTo(Person o) {          //当CompareTo()方法返回0的时候,集合中只有一个元素return 0;}*//*public int compareTo(Person o) {          //当CompareTo()方法返回正数的时候,集合怎么存,就怎么取return 1;}*//*public int compareTo(Person o) {          //当CompareTo()方法返回负数的时候,集合会倒序存储return -1;}*//*public int compareTo(Person o) {return this.age - o.age;                           //年龄是比较的唯一条件,若年龄相同但姓名不同,那么只会存储第一个年龄的人的信息}*//*public int compareTo(Person o) {int num= this.age - o.age;                                      //年龄比较的是主要条件return num == 0 ? this.name.compareTo(o.name) : num;            //姓名是比较的次要条件    }*//*@Overridepublic int compareTo(Person o) {        //按照姓名在字典中的次序排序int  num = this.name.compareTo(o.name);     //姓名是主要条件   return num ==0 ? this.age - o.age : num;    //年龄是次要条件}*/public int compareTo(Person o){int length = this.name.length() - o.name.length();              //比较姓名长度为主要条件int num = length == 0 ? this.name.compareTo(o.name) : length;   //比较姓名内容为次要条件return num == 0 ? this.age - o.age : num;                       //比较年龄也为次要条件     }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

setmonth_日期setMonth()方法以及JavaScript中的示例

setmonthJavaScript日期setMonth()方法 (JavaScript Date setMonth() method) setMonth() method is a Date class method, it is used to set the month to the Date object with a valid month value (between 0 to 11. 0 for January, 1 for February and so on). setMonth(…

LEA与XCHG

LEA 格式&#xff1a; LEA 通用寄存器 内存地址功能&#xff1a;取地址命令 将内存地址赋值给寄存器 lea eax,dword ptr ds:[ecx0x16]dword 双字 就是四个字节ptr pointer缩写 即指针ds 数据段版寄存器[]里的数据是一个地址值&#xff0c;这个地址指向一个双字型数据 将dwo…

分域名优化的时候要考虑备选IP的问题

我们在需要下载很多内容的时候&#xff0c;很容易想到做分域名的并发下载&#xff0c;给原来的服务器多分几个域名&#xff0c;因为分不同的域名可能可以在浏览器中分到更多的下载进程&#xff0c;提高下载速度。 但是在做网络应用的时候&#xff0c;我们的一个域名下面有的时候…

面试题-ASP 与 ASP.Net的区别?

比较简洁的回答&#xff1a; 1.开发语言不同&#xff0c;ASP局限于用脚本语言来开发&#xff0c;而ASP.Net可以使用C#,VB.C等来开发。 2.运行机制不同&#xff0c;ASP是解释运行的&#xff0c;执行效率较低。ASP.Net是编译性的编程框架。 3.开发方式不同&#xff0c;ASP里前台H…

Java——集合(输入5个学生的信息按总分高低排序)

题目要求&#xff1a; 键盘录入5个学生信息&#xff08;姓名&#xff0c;语文成绩&#xff0c;数学成绩&#xff0c;英语成绩&#xff09;&#xff0c;按照总分从高到低输出到控制台 分析&#xff1a; 1&#xff0c;定义一个学生类 * 成员变量&#xff1a;姓名&#xff0c;…

日期setHours()方法以及JavaScript中的示例

JavaScript Date setHours()方法 (JavaScript Date setHours() method) setHours() method is a Date class method, it is used to set the hour to the Date object with a valid hour value (between 00 to 23). setHours()方法是Date类方法&#xff0c;用于将小时设置为具有…

Google SSL zz

// Google SSL// Modified from SSL Certificates Pro//z 2011-12-29 8:59 AM is2120csdn : reader,calendar// UserScript// name Google SSL// namespace http://raychow.info/// version 2.1.2// description 强制 Google 使用安全连接。//// include htt…

阿诺德.施瓦辛格 训练方法

阿诺德.施瓦辛格 训练方法七次“奥林匹亚先生”获得者、著名影星阿诺德.施瓦辛格&#xff0c;是广大健美爱好者崇拜的偶像。即使在今天&#xff0c;他那无与伦比的二头肌和胸肌仍为人们津津乐道。本文是他通过亲身体会&#xff0c;讲述了怎样锻炼才能增长肌肉的观点和方法&…

ADC和SBB命令

ADC 带进位加法指令 用法&#xff1a; adc 操作数1&#xff0c;操作数2相当于&#xff1a; 操作数1操作数2进位标志CF->操作数1现在的eax是0&#xff0c;C1&#xff0c;用adc指令直接会是0x6 SBB 带进位减法指令 用法&#xff1a; sbb 操作数1&#xff0c;操作数2相当…

Java——集合(输入一串字符串,统计字符串中每个字符出现的次数)

A&#xff1a;案例演示 需求&#xff1a;输入一串字符串&#xff0c;统计字符串中每个字符出现的次数** 分析&#xff1a;1&#xff0c;定义一个需要被统计字符的字符串2&#xff0c;将字符串转化为字符数组&#xff0c;才能拿到每一个字符3&#xff0c;定义双列集合存储字符串…

entry数组_数组entry()方法以及JavaScript中的示例

entry数组JavaScript entry()方法 (JavaScript entries() method) entries() method is used to create an iterator object of an array to access the keys (index) and values. entry()方法用于创建数组的迭代器对象&#xff0c;以访问键(索引)和值。 Syntax: 句法&#xf…

mul和div指令(8位,16位,32位)

MUL 无符号乘法指令&#xff0c;默认操作数与eax相乘&#xff08;这里只说32位&#xff0c;其他与下面的div类似&#xff09; 格式&#xff1a; mul 操作数 //操作数只有一个操作数与eax相乘&#xff0c;结果共有16位&#xff08;这里的16位是16进制数&#xff09;&#xff…

2011年年终盘点

不知不觉又到了年底&#xff0c;我坐在电脑前&#xff0c;竭力的回忆&#xff0c;却发现回忆中一片空白&#xff0c;能记起也就那么几件事。 一、在暑假做了一个多月的电子商务 在这个过程中&#xff0c;我了解到电子商务的基本流程&#xff0c;以及一些销售技巧&#xff0c;还…

ASP.NET Application,Session,Cookie和ViewState等对象用法和区别

ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 在ASP.NET中&#xff0c;有很多种保存信息的内置对象&#xff0c;如:Application,Session,Cookie,ViewState和Cache等。下面分别介绍它们的用法和区别。 方法 信息量大小 作用域和保存时间 应用…

Java——集合(HashMap与Hashtable的区别)

* HashMap和Hashtable的区别* 共同点&#xff1a;* 底层都是哈希算法&#xff0c;都是双列集合* 区别&#xff1a;* 1&#xff0c;HashMap是线程不安全的&#xff0c;效率高* Hashtable是线程安全的&#xff0c;效率低 * 2&#xff0c;HashMap可以存储null键和null值* Has…

判断字符串是否构成回文_构成字符串回文的最小删除数

判断字符串是否构成回文Problem statement: 问题陈述&#xff1a; Given string str find the minimum number of deletions such that the resultant string is a palindrome. 给定的字符串str找到最小的删除数&#xff0c;以使最终的字符串成为回文。 Input:Each input con…

imul和idiv指令

imul 有符号乘法指令&#xff0c;分单操作数&#xff0c;双操作数和但操作数 单操作数&#xff1a;此形式与mul指令使用完全相同&#xff0c;操作数乘以al、ax、或eax寄存器中的值&#xff0c;乘积分别存储到ax、dx&#xff1a;ax或edx&#xff1a;eax中 执行指令&#xff1a…

Ajax的注册应用

最近发现Ajax在用户注册表单和用户登录表单方面应用&#xff0c;最能体现Ajax的交互特点&#xff0c;因此又是写了一个习作&#xff01; 演示效果 新开窗口地址&#xff1a; http://www.klstudio.com/demo/ajax/reg.htm 下载地址:http://www.klstudio.com/demo/ajax/reg.rar &…

Java——集合(模拟斗地主洗牌和发牌进行排序)

//改进版&#xff0c;没有进行按牌的地位从小到大排序 package com.yy.test;import java.util.ArrayList; import java.util.Collections;public class Test2 {/*** * A&#xff1a;案例演示* 模拟斗地主洗牌核发牌&#xff0c;牌没有排序* * 分析&#xff1a;* 1&#xff0c;…

应用程序控件

活动指示器 当任务或进程已经完成时&#xff0c;活动指示器就会消失。推荐您使用这种默认行为&#xff0c;因为用户期望在有动作发生时看到活动指示器&#xff0c;而且他们会将静止不动的活动指示器与停滞的进程联想到一起。 要了解如何显示网络活动指示器&#xff0c;请参考UI…