本篇内容包括:Java 集合内容介绍、List 列表、Set 集合、Map 映射和部分其他知识点文章目录一、Java 集合内容介绍二、List 列表1、 ArrayList(动态数组)2、LinkedList(双向链表)3、Vector(矢量队列)4、Stack(栈)三、Set 集合1、HashSet(HashMap实现)2、TreeSet(TreeMap实 ......
420
0
0
2022-12-19
一、简述public interface Map<K,V>将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。注意:Map中的集合不能包含重复的键,值可以重复。每个键只能对应一个值。Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值。Map接口提供三种collection试图, ......
277
0
0
2022-12-19
一、Set接口的特点一个不包含重复元素的collection。更确切地讲,Set不包含满足e1.equals(e2)的元素对 e1和e2,并且最多包含一个null元素。Set集合由Set接口和Set接口的实现类组成,Set接口继承了Collection接口,因此包含了Collection接口的所有方法。其主要实现类有HashSet和TreeSet,在Hash ......
279
0
0
2022-12-19
List集合List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。 List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。 JDK API中List接口的实现类常用的有:ArrayList、LinkList和Vector。 List集合里添加了一些根据索引来操作集合元素的方法一、ArrayListA ......
344
0
0
2022-12-19
Collection是一个接口,继承自Iterable。我们先看一下Iterable接口的源码一、Iterablepackage java.lang; import java.util.Iterator; import java.util.Objects; import java.util.Spliterator; import java.uti ......
330
0
0
2022-12-19
一、集合的由来通常,我们的Java程序需要根据程序运行时才知道创建了多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是!数组只能存放同一类型的数据,而且其长度是固定的,那怎么办 ......
311
0
0
2022-12-19
第十七章 排序原文:Chapter 17 Sorting 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译计算机科学领域过度痴迷于排序算法。根据 CS 学生在这个主题上花费的时间,你会认为排序算法的选择是现代软件工程的基石。当然,现实是,软件开发人员可以在很多年中,或者整个职业生涯中,不必考虑排序如何工作。对于几乎所有的应用程序,它们都使 ......
422
0
0
2022-12-18
第十六章 布尔搜索原文:Chapter 16 Boolean search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在本章中,我展示了上一个练习的解决方案。然后,你将编写代码来组合多个搜索结果,并按照它与检索词的相关性进行排序。16.1 爬虫的答案首先,我们来解决上一个练习。我提供了一个WikiCrawler的大纲;你的工作是填写 ......
343
0
0
2022-12-18
第十五章 爬取维基百科原文:Chapter 15 Crawling Wikipedia 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在本章中,我展示了上一个练习的解决方案,并分析了 Web 索引算法的性能。然后我们构建一个简单的 Web 爬虫。15.1 基于 Redis 的索引器在我的解决方案中,我们在 Redis 中存储两种结构:对 ......
327
0
0
2022-12-18
第十四章 持久化原文:Chapter 14 Persistence 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在接下来的几个练习中,我们将返回到网页搜索引擎的构建。为了回顾,搜索引擎的组件是:抓取:我们需要一个程序,可以下载一个网页,解析它,并提取文本和任何其他页面的链接。索引:我们需要一个索引,可以查找检索项并找到包含它的页面。检 ......
330
0
0
2022-12-18
第十三章 二叉搜索树原文:Chapter 13 Binary search tree 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本章介绍了上一个练习的解决方案,然后测试树形映射的性能。我展示了一个实现的问题,并解释了 Java 的TreeMap如何解决它。13.1 简单的MyTreeMap上一个练习中,我给了你MyTreeMap的大 ......
322
0
0
2022-12-18
第十二章 TreeMap原文:Chapter 12 TreeMap 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译这一章展示了二叉搜索树,它是个Map接口的高效实现。如果我们想让元素有序,它非常实用。12.1 哈希哪里不对?此时,你应该熟悉 Java 提供的Map接口和HashMap实现。通过使用哈希表来制作你自己的Map,你应该了解H ......
396
0
0
2022-12-18
第十一章 HashMap原文:Chapter 11 HashMap 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译上一章中,我们写了一个使用哈希的Map接口的实现。我们期望这个版本更快,因为它搜索的列表较短,但增长顺序仍然是线性的。如果存在n个条目和k个子映射,则子映射的大小平均为n/k,这仍然与n成正比。但是,如果我们与n一起增加k, ......
319
0
0
2022-12-18
第十章 哈希原文:Chapter 10 Hashing 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在本章中,我定义了一个比MyLinearMap更好的Map接口实现,MyBetterMap,并引入哈希,这使得MyBetterMap效率更高。10.1 哈希为了提高MyLinearMap的性能,我们将编写一个新的类,它被称为MyBett ......
323
0
0
2022-12-18
第九章 Map接口原文:Chapter 9 The Map interface 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在接下来的几个练习中,我介绍了Map接口的几个实现。其中一个基于哈希表,这可以说是所发明的最神奇的数据结构。另一个是类似的TreeMap,不是很神奇,但它有附加功能,它可以按顺序迭代元素。你将有机会实现这些数据结 ......
331
0
0
2022-12-18