当前位置: 首页 > news >正文

租服务器做网站百度竞价排名价格查询

租服务器做网站,百度竞价排名价格查询,网站设计的图片,国内外创意网站欣赏什么是 Set 在 Java 中,Set 是一种集合类型,它不允许重复的元素。Set 接口是 Java Collections Framework 的一部分,主要用于存储不重复的值。常见的实现类包括 HashSet、LinkedHashSet 和 TreeSet。 实现原理 1. HashSet HashSet 是最常…

什么是 Set

在 Java 中,Set 是一种集合类型,它不允许重复的元素。Set 接口是 Java Collections Framework 的一部分,主要用于存储不重复的值。常见的实现类包括 HashSetLinkedHashSetTreeSet

实现原理

1. HashSet

HashSet 是最常用的实现,它基于哈希表(实际上是一个 HashMap)。其基本实现原理如下:

  • 存储结构:使用 HashMap 来存储元素,其中每个元素作为 HashMap 的键,值则固定为一个常量对象。
  • 哈希函数:当调用 add 方法时,首先会计算该元素的哈希值,并根据哈希值来决定它在哈希表中的位置。
  • 冲突解决:如果两个不同的元素产生相同的哈希值,则会通过链表或红黑树的方式来处理这些冲突(取决于元素数量)。

2. LinkedHashSet

LinkedHashSet 继承自 HashSet,并且维护了一个双向链表以保持插入顺序。它的实现与 HashSet 类似,但增加了链表的管理,确保元素的迭代顺序与插入顺序一致。

3. TreeSet

TreeSet 实现了 SortedSet 接口,底层使用红黑树来存储元素。其主要特点是自动排序。添加元素时,它会将元素放入适当的位置,以保持树的有序性。

使用场景

  • 去重:当需要存储不重复的元素时,使用 Set 是一个理想选择。
  • 快速查找:由于哈希表的特性,HashSet 提供了 O(1) 的时间复杂度来查找元素。
  • 顺序存储:如果需要保持插入顺序,可以使用 LinkedHashSet;如果需要有序的元素,可以使用 TreeSet

示例代码

以下是使用 HashSetLinkedHashSetTreeSet 的示例代码:

HashSet 示例

import java.util.HashSet;public class HashSetExample {public static void main(String[] args) {HashSet<String> hashSet = new HashSet<>();hashSet.add("Apple");hashSet.add("Banana");hashSet.add("Orange");hashSet.add("Apple");  // 重复的元素不会被添加System.out.println("HashSet: " + hashSet);}
}

LinkedHashSet 示例

import java.util.LinkedHashSet;public class LinkedHashSetExample {public static void main(String[] args) {LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();linkedHashSet.add("Apple");linkedHashSet.add("Banana");linkedHashSet.add("Orange");linkedHashSet.add("Apple");  // 重复的元素不会被添加System.out.println("LinkedHashSet (保持顺序): " + linkedHashSet);}
}

TreeSet 示例

import java.util.TreeSet;public class TreeSetExample {public static void main(String[] args) {TreeSet<Integer> treeSet = new TreeSet<>();treeSet.add(10);treeSet.add(5);treeSet.add(20);treeSet.add(15);System.out.println("TreeSet (自动排序): " + treeSet);}
}

也可以按照对象某个字段排序

import java.util.Comparator;
import java.util.TreeSet;// 定义一个 Person 类
class Person {String name;int age;Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Person{name='" + name + "', age=" + age + "}";}
}// 根据年龄排序的比较器
class AgeComparator implements Comparator<Person> {@Overridepublic int compare(Person p1, Person p2) {return Integer.compare(p1.age, p2.age);}
}public class TreeSetSortingExample {public static void main(String[] args) {// 使用年龄排序的 TreeSetTreeSet<Person> treeSetByAge = new TreeSet<>(new AgeComparator());// 添加 Person 对象treeSetByAge.add(new Person("Alice", 30));treeSetByAge.add(new Person("Bob", 25));treeSetByAge.add(new Person("Charlie", 35));// 输出排序后的结果System.out.println("按年龄排序的 TreeSet:");for (Person person : treeSetByAge) {System.out.println(person);}}
}

运行结果示例

按年龄排序的 TreeSet:
Person{name='Bob', age=25}
Person{name='Alice', age=30}
Person{name='Charlie', age=35}

总结

Java 的 Set 接口及其实现类提供了灵活有效地存储和管理不重复元素的方式。根据场景的不同,可以选择合适的实现类,如 HashSet 用于一般的去重需求,LinkedHashSet 用于保持插入顺序,TreeSet 用于自动排序。通过这些集合类,开发者可以更高效地处理数据。

http://www.khdw.cn/news/55638.html

相关文章:

  • 有哪些网站是做采购招标的seo公司培训课程
  • 网页ui设计流程搜索引擎优化叫什么
  • 做网站要哪些架包能打开各种网站的搜索引擎
  • 在线制作个人网站湖南网站建设工作室
  • 陕西网站建设公司排名神马推广登录
  • wordpress多域名不稳定系统清理优化工具
  • 北京做网站建设价格国外搜索引擎网址
  • wordpress4中文宁波网站优化公司推荐
  • 网站备案和域名备案百度排名优化专家
  • 如何自己做代理网站的想法关键词排名代发
  • 网站建设bbs知乎关键词排名
  • wordpress下载的主题如何安装永州网站seo
  • 做鞋的垂直网站每日一则小新闻
  • 家居网站建设的背景及意义深圳外贸网站推广
  • 怎样做电商网站聚名网官网
  • 精品网站设计欣赏360优化大师旧版
  • 智慧团建官方网站登录seo的中文含义是什么
  • 古典网站建设青岛网站关键词优化公司
  • 个人网站模板儿童天津外贸seo推广
  • 公司网站制作注意什么班级优化大师的功能
  • 阳澄湖大闸蟹网站建设网站优化内容
  • 网站数据迁移教程如何制作一个网页
  • 长寿做网站的电话百度小说app
  • 济南专业做网站seo关键词优化策略
  • 楼盘网站开发搜索排名广告营销
  • 中国风网站建设app推广渠道商
  • js弹出网站专业的seo外包公司
  • 做章的网站如何快速推广自己的品牌
  • 竞价网站做推广方案seo排名推广工具
  • 兰州网站建设网站建设网络营销的种类有哪些