Java编程集合之HashSet+TreeSet

简介: 1.集合的应用 集合就是一个小容器 增删改查 2.集合使用的情形 各自集合的特点 3.底层原理 数据结构的存储方式 4.自己尝试实现

知识回顾

集合

   Collection  Map

   以value形式存储  以key-value形式存储

   List    Queue    Set

   有序可重复        无序无重复 key无序无重复value无序可重复

   ArrayList        HashSet HashMap

   Vector         TreeSet TreeMap

   Stack(LIFO)

   LinkedList

   add()         add()

   remove()         remove()

   set()

   get()         iterator()

   size()                size()

   1.集合的应用

集合就是一个小容器    增删改查

   2.集合使用的情形

各自集合的特点

   3.底层原理

数据结构的存储方式

   4.自己尝试实现

Collection 以value形式存在

   Set  无序无重复

   1.具体的实现类

HashSet

TreeSet

   2.基本的使用

   3.无序   无重复

无序:我们使用集合存放元素的顺序  集合内取出来的顺序不一致

集合本身是有自己的算法排布顺序  hash算法

HashSet---->(HashMap (数组+链表) 散列表 临接连表)

   1.java.util

   2.如何创建对象   无参数  有参数

   3.集合容器的基本使用

       增删改查

       boolean = add(value)   addAll(collection c)   retainAll   removeAll

       boolean = remove(Object)

       没有修改方法

       iterator()  获取一个迭代器对象

       size()

   4.无重复的原则

       首先通过String类型和Person类型存储

       大概猜测  无重复的原则  利用equals方法进行比较

       如果我们想要让Person对象的name一致 认为是同一个对象

       我们可以重写equals方法

       重写了equals方法  发现还没有产生无重复的效果

       证明可能原则不止equals一个方法这么简单

       还有另一个规则同时起着作用 hashCode方法  int

       五个Person对象只剩一个   第一次存储的   还是最后一次存储

       set集合是发现重复的元素 拒绝存入  存储的是第一个

       TreeSet-----(TreeMap 二叉树 利用Node(left item right))

       无序无重复  java.util

       无参数构造方法    带Collection构造方法

       基本常用方法

           add(E e)  iterator()  remove(E e)  没有修改  size()

       无重复的规则是如何实现的

       treeSet集合本身有顺序   我们指的无序存入的和取出来的不一致

       compareTo---->String类  按照字母的自然顺序排布(Unicode)

       如果想要把自己写的类型 比如Person对象存入TreeSet集合里

       不能随意的存储 需要让自己写的类先实现Comparable接口

目录
相关文章
|
5天前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
2天前
|
缓存 负载均衡 安全
|
5天前
|
Java 数据库连接 网络安全
JDBC数据库编程(java实训报告)
这篇文章是关于JDBC数据库编程的实训报告,涵盖了实验要求、实验环境、实验内容和总结。文中详细介绍了如何使用Java JDBC技术连接数据库,并进行增删改查等基本操作。实验内容包括建立数据库连接、查询、添加、删除和修改数据,每个部分都提供了相应的Java代码示例和操作测试结果截图。作者在总结中分享了在实验过程中遇到的问题和解决方案,以及对Java与数据库连接操作的掌握情况。
JDBC数据库编程(java实训报告)
|
6天前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
1天前
|
设计模式 算法 安全
Java编程中的设计模式:提升代码的可维护性和扩展性
【8月更文挑战第19天】在软件开发的世界里,设计模式是解决常见问题的一种优雅方式。本文将深入探讨Java编程语言中常用的几种设计模式,并解释如何通过这些模式来提高代码的可维护性和扩展性。文章不涉及具体的代码实现,而是侧重于理论和实践相结合的方式,为读者提供一种思考和改善现有项目的新视角。
|
1天前
|
安全 Java 测试技术
深入探讨Java安全编程的最佳实践,帮助开发者保障应用的安全性
在网络安全日益重要的今天,确保Java应用的安全性成为了开发者必须面对的课题。本文介绍Java安全编程的最佳实践,包括利用FindBugs等工具进行代码审查、严格验证用户输入以防攻击、运用输出编码避免XSS等漏洞、实施访问控制确保授权访问、采用加密技术保护敏感数据等。此外,还强调了使用最新Java版本、遵循最小权限原则及定期安全测试的重要性。通过这些实践,开发者能有效提升Java应用的安全防护水平。
5 1
|
2天前
|
Java 开发者
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案。本文通过技术综述及示例代码,剖析两者在性能上的差异。if-else具有短路特性,但条件增多时JVM会优化提升性能;switch则利用跳转表机制,在处理大量固定选项时表现出色。通过实验对比可见,switch在重复case值处理上通常更快。尽管如此,选择时还需兼顾代码的可读性和维护性。理解这些细节有助于开发者编写出既高效又优雅的Java代码。
6 2
|
2天前
|
Java 开发者
在Java编程的广阔天地中,if-else与switch语句犹如两位老练的舵手,引领着代码的流向,决定着程序的走向。
在Java编程中,if-else与switch语句是条件判断的两大利器。本文通过丰富的示例,深入浅出地解析两者的特点与应用场景。if-else适用于逻辑复杂的判断,而switch则在处理固定选项或多分支选择时更为高效。从逻辑复杂度、可读性到性能考量,我们将帮助你掌握何时选用哪种语句,让你在编程时更加得心应手。无论面对何种挑战,都能找到最适合的解决方案。
6 1
|
2天前
|
搜索推荐 Java 程序员
在Java编程的旅程中,条件语句是每位开发者不可或缺的伙伴,它如同导航系统,引导着程序根据不同的情况做出响应。
在Java编程中,条件语句是引导程序根据不同情境作出响应的核心工具。本文通过四个案例深入浅出地介绍了如何巧妙运用if-else与switch语句。从基础的用户登录验证到利用switch处理枚举类型,再到条件语句的嵌套与组合,最后探讨了代码的优化与重构。每个案例都旨在帮助开发者提升编码效率与代码质量,无论是初学者还是资深程序员,都能从中获得灵感,让自己的Java代码更加优雅和专业。
5 1
|
2天前
|
Java
在Java编程的广阔天地中,条件语句是控制程序流程、实现逻辑判断的重要工具。
在Java编程中,if-else与switch作为核心条件语句,各具特色。if-else以其高度灵活性,适用于复杂逻辑判断,支持多种条件组合;而switch在多分支选择上表现优异,尤其适合处理枚举类型或固定选项集,通过内部跳转表提高执行效率。两者各有千秋:if-else擅长复杂逻辑,switch则在多分支选择中更胜一筹。理解它们的特点并在合适场景下使用,能够编写出更高效、易读的Java代码。
5 1