- 浏览: 195308 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. Java中hashSet集合
2. Java中treeSet集合
推荐博客:https://blog.csdn.net/qq_33642117/article/details/52040345
HashSet的add()方法返回ture添加成功,返回false添加失败。HashSet是没有顺序的。 public class SetTest1 { public static void main(String[] args){ HashSet set = new HashSet(); System.out.println(set.add("a")); set.add("b"); set.add("c"); set.add("d"); System.out.println(set.add("a")); System.out.println(set); } } 运行结果: true false [d, b, c, a] set集合不会存储重复的元素,具体是比较两个引用调用hashCode方法得到的结果是否相同! import java.util.HashSet; public class SetTest2{ public static void main(String[] args){ HashSet set = new HashSet(); String s1 = new String("a"); String s2 = new String("a"); System.out.println("hash code: " + (s1.hashCode() == s2.hashCode())); set.add(s1); set.add(s2); System.out.println(set); } } 运行结果: hash code: true [a] set集合增加时候的步骤: 1) 当使用HashSet时,hashCode()方法就会得到调用,判断已经存储在集合中的对象的hashcode值是否与增加的对象的hashcode值一致; 2) 如果不一致,直接加进去;如果一致,再进行equals方法的比较,equals方法如果返回true,表示对象已经加进去了,就不会再增加新的对象,否则加进去。
2. Java中treeSet集合
Collections的reverseOrder()方法是自然顺序的反序的排序,sort()方法是对指定集合的排序。 Collections的shuffle()方法是随机排序。 Collections的max()和min()方法。 1. 元素自身具备比较性,需要元素实现Comparable接口,重写compareTo方法。叫做元素的自然排序(默认排序)。 import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; public class TreeSetTest2{ public static void main(String[] args){ TreeSet set = new TreeSet(new PersonComparator()); Person p1 = new Person(10); Person p2 = new Person(20); Person p3 = new Person(30); Person p4 = new Person(40); set.add(p1); set.add(p2); set.add(p3); set.add(p4); for(Iterator iter = set.iterator(); iter.hasNext();){ Person p = (Person)iter.next(); System.out.println(p.score); } } } class Person{ int score; public Person(int score){ this.score = score; } public String toString(){ return String.valueOf(this.score); } } class PersonComparator implements Comparator{ public int compare(Object arg0, Object arg1){ Person p1 = (Person) arg0; Person p2 = (Person) arg1; return p2.score - p1.score; } } 运行结果: 40 30 20 10 2. 元素自身不具备比较性,或者具备的比较性不是所需要的,需要定义一个类实现接口Comparator,重写compare方法,并将该接口的子类实例对象作为参数传递给TreeMap集合的构造方法。 当Comparable比较方式和Comparator比较方式同时存在时,以Comparator的比较方式为主。 import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; public class TreeSetTest3{ public static void main(String[] args){ TreeSet set = new TreeSet(new MyComparator()); set.add("C"); set.add("A"); set.add("B"); set.add("E"); set.add("a"); set.add("F"); set.add("D"); for(Iterator iter = set.iterator(); iter.hasNext();){ String value = (String)iter.next(); System.out.println(value); } } } class MyComparator implements Comparator{ public int compare(Object arg0, Object arg1){ String s1 = (String)arg0; String s2 = (String)arg1; return s2.compareTo(s1); } } 运行结果: a F E D C B A
推荐博客:https://blog.csdn.net/qq_33642117/article/details/52040345
发表评论
-
Java中获取IP地址、子网掩码、网关地址
2019-06-26 10:53 01. Java中获取IP地址、子网掩码、网关地址、ping连通 ... -
Java中ThreadLocal
2019-04-19 10:44 01. Java中ThreadLocal Java中的Th ... -
Java中原子性锁synchronized、Lock
2019-04-18 15:19 01. synchronized依赖JVM 1) 修饰代码 ... -
Java中原子性Atomic
2019-04-18 14:45 01. Atomic包简介 java.util.concu ... -
开发常用链接
2019-03-26 11:21 0在线工具:http://tool.oschina.net/ ... -
java1234学习目录
2019-03-21 11:08 01-01-01 N01 J2SEv2(41课时) ... -
Java中TCP和UDP
2018-10-25 10:55 3591. 网页内容获取 Url1.java impor ... -
Java中Thread线程
2018-10-25 09:38 3991. 实现线程的两种方式 1. 继承Thread类并重写 ... -
Java中serializable序列化
2018-10-24 14:46 4891. 序列化 transient不会被序列化。 imp ... -
Java中CharSet集
2018-10-24 11:31 5571. CharSet集 import java.nio. ... -
Java中RandomAccessFile类
2018-10-24 11:30 5211. RandomAccessFile类 1. 使用Ra ... -
Java中I/O的字符流InputStreamReader和OutputStreamWriter
2018-10-22 09:43 4531. InputStreamReader和OutputStre ... -
Java中其它输入输出流
2018-10-22 09:08 4831. ByteArrayInputStream流 以ar ... -
Java中I/O的OutputStream流
2018-10-22 08:54 4971. Java中I/O的OutputStream流 1. ... -
Java中I/O的InputStream流
2018-10-22 08:42 4791. Java中I/O的InputStream流 1. ... -
Java中I/O的File类
2018-10-19 13:45 4541. Java中I/O的File类 1. 在window ... -
Java中innerClass内部类
2018-10-18 09:37 4641. Java中innerClass内部类 用AA.BB ... -
Java中adapter适配器
2018-10-18 08:36 5961. Java中adapter适配器 适配器adapte ... -
Java中awt包
2018-10-17 11:26 17271. Java中awt包 AWT事件模型Event 1 ... -
Java中frame对象
2018-10-17 10:56 6961. Java中frame对象 1. Frame对象 ...
相关推荐
当向 HashSet 集合中存入一个元素时,HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值,然后根据 hashCode 值来决定该对象在 HashSet 中的存储位置。简单地说,HashSet 集合判断两个元素相等的...
在Java编程语言中,集合框架是处理数据的重要组成部分,其中`HashSet`和`TreeSet`是两种常用的Set接口实现类。它们各自具有独特的特性和用途,理解它们的区别对于编写高效且正确的代码至关重要。 首先,`HashSet`是...
HashSet和TreeSet是Java集合框架中的两种重要数据结构,它们都是Set接口的实现类,用于存储不重复的元素。在编程实践中,理解它们的区别和应用场景至关重要。 HashSet是基于HashMap实现的,它不保证元素的顺序,...
HashSet 和 TreeSet 是 Java 中两种常用的 Set 集合实现,它们都继承自 Set 接口,但实现方式和特性上存在显著差异。 首先,HashSet 是基于哈希表(HashMap 实例)来存储元素的,因此它提供了快速的插入、删除和...
HashSet和TreeSet都是Java集合框架中的Set接口实现,用于存储不重复的元素。但是,它们在使用方法和实现机理上有很大的区别。 首先,从使用方法上讲,HashSet和TreeSet都可以用于存储不重复的元素,但是它们在元素...
在Java编程语言中,集合框架是处理对象组的重要工具,其中`HashSet`和`TreeSet`是两种常见的接口实现类,分别提供了不同的功能和性能特性。本教程将深入探讨这两个集合类以及它们与比较器(Comparator)的关系。 ...
这意味着在遍历LinkedHashSet时,元素会被按照添加到集合中的顺序访问,这在需要保持元素插入顺序的情况下非常有用。尽管如此,插入性能略低于HashSet,但在迭代访问时,其性能优于HashSet。 最后,TreeSet是...
java HashSet 集合排序,需要通过利用TreeSet集合排序。2013-10-30。
4. **迭代器**:`TreeSet`遵循Java集合框架的迭代规则,我们可以使用`iterator()`获取一个迭代器,然后通过`hasNext()`和`next()`来遍历并访问集合中的元素。 5. **遍历`TreeSet`**:由于`TreeSet`是有序的,我们...
此方法的实现代码较为简洁,但缺点是 HashSet 会自动排序,这样新集合的数据排序就和原集合不一致了 4:TreeSet去重(无序) 比较遗憾的是,TreeSet 虽然实现起来也比较简单,但它有着和 HashSet 一样的问题,会自动...
在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...
在Java集合框架中,TreeSet是一个重要的数据结构,它是Set接口的实现类之一,与HashSet和LinkedHashSet不同,TreeSet具有排序功能,这是因为其不仅继承自AbstractSet,还实现了SortedSet和NavigableSet接口。...
本资源聚焦于Java集合中的四个关键类:HashSet、TreeSet、HashMap和TreeMap,它们分别代表了不同类型的集合容器。 1. **HashSet**:HashSet是一个不允许重复元素的无序集合。它基于哈希表实现,插入和查找操作的...
List和Set都可以返回Iterator对象,Iterator可以用来遍历集合中的元素。 Collection接口 Collection接口是Java集合类中最高级的接口,提供了基本的添加、删除、检查元素是否存在的方法。List和Set都是Collection...
Java编程基础笔记主要聚焦在集合框架上,这是Java编程中不可或缺的部分。集合框架是Java提供的一组接口和类,用于存储和操作...在实际的学习过程中,结合这些图片和文字笔记,可以加深对Java集合的理解,提升编程能力。
Java 泛型集合和Java集合框架是Java编程中不可或缺的部分,它们为开发者提供了高效的数据存储和操作机制。本文将深入探讨这两个主题,并着重讲解`Collection`接口及其在Java中的应用。 首先,Java泛型是一种在编译...
ArrayList、HashSet 和 TreeSet 是 Java 中常用的集合实现类。ArrayList 是一个动态数组,HashSet 是一个不允许重复元素的集合,TreeSet 是一个有序的集合。 数组 数组是一种基本的数据结构,用于存储一组相同类型...
泛型可以限制集合中元素的类型,防止不兼容类型的数据存入,提高编译时的类型检查。 5. **泛型通配符**:?通配符用于表示任意类型。例如,`List<?> list = new ArrayList();` 这里的?表示list可以接受任何类型的...
ava基础 基础知识 面向对象基础 Java基本数据类型 string和包装类 final关键字特性 Java类和包 抽象类和接口 ...Java集合详解7:HashSet,TreeSet与LinkedHashSet Java集合详解8:Java集合类细节精讲 JavaWeb
在Java编程中,HashMap、HashSet、TreeMap和TreeSet是四种常见的集合类,它们各自有特定的用途和内部实现机制。这些数据结构用于存储和管理数据,其中HashMap和HashSet是基于哈希表实现的,而TreeMap和TreeSet则是...