Set集合,无序,不可以重复元素

Set集合中的子类HashSet和TreeSet集合的特点

首先说一下HashSet:  数据结构是哈希表。线程是非同步的。

保证元素唯一性的原理:判断元素的hashCode值是否相同

如果相同,还会继续判断元素的equals方法,是否为true.

TressSet : 可以对Set集合中的元素进行排序。
底层数据结构是二叉树,
保证元素唯一性。
TreeSet排序的第一中方式:让元素自身具备比较性
元素需要实现Complare

注意:当主要条件相同时,一定要判断次要条件

上代码:

import java.util.*;
class TreeSetDemo 
{
public static void main(String[] args) 
{
TreeSet ts=new TreeSet();
ts.add(new Student("学生1",22));
ts.add(new Student("学生2",20));
ts.add(new Student("学生3",20));
ts.add(new Student("学生4",40));
Iterator it=ts.iterator();
while(it.hasNext())
{
Student stu=(Student)it.next();
System.out.println(stu.getName()+"...."+stu.getAge());
}
}
}

class Student implements Comparable//该接口强制让学生具备比较性。
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student s=(Student)obj;
System.out.println(this.name+"...compareto..."+s.name);
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);//当主要条件满足判断次要条件
}

return -1;
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}}

set集合特点级子类的特点相关推荐

  1. 黑马毕向东Java课程笔记(day14-1——14-11):集合类(集合框架)——集合类分类与特点+List集合接口及其子类

    1.集合类特点   为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.   数组和集合类同是容器,有何不同 ...

  2. java解析遍历List集合(其实现子类)的三种方式

    java解析遍历List集合(其实现子类)的三种方式 1 使用迭代器对象 1.1 底层 1.1.1 List接口继承了Collection接口 1.1.2 而Collection接口又继承了Itera ...

  3. Java集合Map与其子类回顾

    接10月12号昨天的笔记,今天继续回顾集合中的Map集合. 一.集合工具操作类Collections 问题:collection和collections的区别? 1.collection是单列集合的顶 ...

  4. 一个简单的集合并级取反问题 !A or !B == !(A and B)

    A and B的反义   ! A  or  !B   错!! 要找到 !A 和!B的交际  !A or !B 而不是 !A and !B !A or !B == !(A and B) 举例: sele ...

  5. Java基础笔记-十五、集合类库(下)

    泛型机制(熟悉) 通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而 ...

  6. Java_比较器枚举类和注解集合泛型

    文章目录 Java_比较器 Java_自然排序:java.lang.Comparable Java_Comparable的实现 Java_定制排序java.util.Comparator Java_S ...

  7. 小白学JAVA之十七——集合类库

    小白学JAVA之十七--集合类库 一. 集合 1.1 集合的由来 当需要在Java程序中记录单个数据内容时,则声明一个变量. 当需要在Java程序中记录多个类型相同的数据内容时,声明一个一维数组. 当 ...

  8. 【Java 集合】Java 集合主要脉络 ( Collection | Map | List | Set )

    文章目录 I 集合脉络 II List 接口简介 III Set 接口简介 IV Map 接口简介 V Collection 接口定义的方法 I 集合脉络 集合主要脉络 : Java 集合大的分类为两 ...

  9. Java基础知识(数据类型和集合)

    一.数据类型 包装类型 包装类型是对基本数据类型不足之处的补充. 基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法. Java1.5 以后可以自动装箱和拆箱 二 ...

最新文章

  1. 机器学习和统计中的AUC
  2. YCrCb与YPrPb的含义与区别
  3. 从 Google Code 迁移代码到 GitHub 上
  4. mysql Windows导入sql 失败
  5. 计算机组成原理树状图,数据结构
  6. WdatePicker日期插件
  7. oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...
  8. CHIL-SQL-FOREIGN KEY 约束
  9. Android轩辕剑之ActionBar之三
  10. 【LOJ119】单源最短路 模板
  11. Vue全家桶+koa2+MySql(sequelize)重构“零食商贩”项目
  12. java fseek_无法使用fseek(C)浏览文件
  13. HMI 排行中有哪些触摸屏品牌
  14. 数据总线和地址总线区别是什么?作用分别是什么
  15. php 应用截图,PHP实现网页截图?
  16. java工程师容易秃头吗_程序员因发际线后悔学java!
  17. 深度强化学习训练调参方法
  18. 中国传感器制造行业发展态势与应用前景预测报告2022-2028年
  19. django-spirt 论坛主题
  20. dg怎么了(最近dg怎么了)

热门文章

  1. 华侨城黄金周期间接待游客650万人次
  2. 【FXCG】调查显示美国通胀率将持续超过目标
  3. 《老滚5 》买房、立室详尽办法
  4. 初次安装mysql8 设置密码为root
  5. 【计算机网络】Transmission-Control-Protocol拥塞控制
  6. ubuntu无法上网问题的解决
  7. 阿里云服务端SDK下载的jar包通过maven命令安装(maven手动安装本地jar包到项目)...
  8. YGG SEA 与 P2E 游戏 Big Time、Avarik Saga、Zuki Moba 和 SolChicks 达成合作
  9. 知识变现海哥:如何利用知乎平台知识变现?
  10. hbase+phoenix