哈希表

FreeMarker手册全篇

给你一囗甜甜゛ 提交于 2019-11-28 15:50:43
FreeMarker 手册 用于 FreeMarker 2.3.19 Translated By Nan Lei 南磊 译 Copyright: The Chinese translation of the FreeMarker Manual by Nan Lei is licensed under a Creative Commons Attribution 3.0 Unported License (see http://creativecommons.org/licenses/by/3.0/ ). This licence only applies to the Chinese translation, not to the original (English) FreeMarker Manual. 版权说明: FreeMarker 中文版手册由南磊翻译,本文档基于 Creative Commons Attribution 3.0 Unported 授权许可(参见 http://creativecommons.org/licenses/by/3.0/deed.zh) 本许可仅应用于中文版,不对原版英文手册。 (译者联系方式为:nanlei1987@gmail.com 或 http://weibo.com/nanlei1987) 目录 前言… 7 什么是 FreeMarker?

Java.数据结构.集合体系详解

一个人想着一个人 提交于 2019-11-28 14:47:01
I. 第一部分:常见数据结构 首先简单说下数据结构. 什么是数据结构?数据结构就是组织数据的方式. 常见的数据结构:栈,堆,树,图,数组,队列,链表. 这里主要介绍与java集合体系相关的栈、数组和链表. 栈 特点:压栈弹栈,先进后出. 如:手枪弹夹装弹过程,最先压入的子弹在最下面;而在射击时,最先弹入枪膛的是最上面的子弹,即最后压入弹夹的子弹. 队列 特点:先进先出. 如:子弹射出的过程,先进入枪膛的子弹最先被射出. 数组 概述:用来存储同一种类型元素的容器。 特点:在内存中是连续的,每个元素都有编号(从0开始的),方便获取。但增删就比较麻烦,需要将目标位置后的所有数据前移动或后移. 查询快,增删慢. 链表 概述:把一些结点通过链子连接起来的数据结构。每个结点由地址域和数值域组成. 特点:增删快,查询慢. 增删时,只需要把所插入处的前后节点链条断开,增加或移除目标节点,速度很快。反之,查询时则需要遍历所有节点,直到找到目标节点,速度自然要慢。 II. 第二部分:Java中的Collection(集合)体系 2.1 集合体系概览: 集合体系分为4大块: Collection接口: Collection是最基本集合接口,它定义了一组允许重复的对象. 它有两个子接口:List和Set. 1. List下3个实现类:ArrayList, LinkedList, Vector.

UPC8173【 哈希和哈希表】Three Friends

有些话、适合烂在心里 提交于 2019-11-28 13:51:39
【 哈希和哈希表】Three Friends 时间限制: 1 Sec 内存限制: 128 MB 提交: 67 解决: 11 [ 提交 ] [ 状态 ] [命题人: admin ] 题目描述 Three friends like to play the following game. The first friend chooses a string S. Then the second friend constructs a new string T that consists of two copies of the string S. finally, the third friend inserts one letter at the beginning, the end or somewhere inside the string T, thereby creating a string U. You are given the string U and your task is to reconstruct the original string S. 输入 The first line of the input contains N(2 ≤ N ≤ 2000001), the length of the final string U. The string U

Java集合详解

会有一股神秘感。 提交于 2019-11-28 13:50:37
一、数组和集合的比较 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下: 1:数组能存放基本数据类型和对象,而集合类存放的都是对象的引用,而非对象本身! 2:数组容易固定无法动态改变,集合类容量动态改变。 3:数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数 4:集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式 5:集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率 二、Java集合 此图可用Windows系统自带画图工具查看比较清晰 Collection和Map,是集合框架的根接口。 Collection的子接口: Set:接口 ---实现类: HashSet、LinkedHashSet Set的子接口SortedSet接口---实现类:TreeSet List:接口---实现类: LinkedList,Vector,ArrayList List集合 有序列表,允许存放重复的元素; 实现类: ArrayList:数组实现,查询快,增删慢,轻量级;(线程不安全) LinkedList:双向链表实现,增删快,查询慢 (线程不安全) Vector:数组实现,重量级 (线程安全

(转载)图像检索:基于内容的图像检索技术

Deadly 提交于 2019-11-28 12:28:21
图像检索:基于内容的图像检索技术 背景与意义 在Web2.0时代,尤其是随着Flickr、Facebook等社交网站的流行,图像、视频、音频、文本等异构数据每天都在以惊人的速度增长。例如, Facebook注册用户超过10亿,每月上传超过10亿的图片;Flickr图片社交网站2015年用户上传图片数目达 7.28亿 ,平均每天用户上传约200万的图片;中国最大的电子商务系统淘宝网的后端系统上保存着286亿多张图片。针对这些包含丰富视觉信息的海量图片,如何在这些浩瀚的图像库中方便、快速、准确地查询并检索到用户所需的或感兴趣的图像,成为多媒体信息检索领域研究的热点。基于内容的图像检索方法充分发挥了计算机长于处理重复任务的优势,将人们从需要耗费大量人力、物力和财力的人工标注中解放出来。经过十来来的发展,基于内容的图像检索技术已广泛应用于搜索引擎、电子商务、医学、纺织业、皮革业等生活的方方面面。 图像检索按描述图像内容方式的不同可以分为两类,一类是基于文本的图像检索(TBIR, Text Based Image Retrieval),另一类是基于内容的图像检索(CBIR, Content Based Image Retrieval)。 基于文本的图像检索方法始于上世纪70年代,它利用文本标注的方式对图像中的内容进行描述,从而为每幅图像形成描述这幅图像内容的关键词,比如图像中的物体、场景等

集合使用的总结

心已入冬 提交于 2019-11-28 11:54:59
  集合在程序设计中有着举足轻重的地位,集合的操作无非就是增删遍历等基本的动作,所以就以上基本操作,本文结合案例及代码分别加以说明。   首先,集合从大的方向来分,分为单列集合(Collection)和双列集合(Map)。简单地说,就是Collection中存储的是单一的内容,而Map集合中存储的是键和值,就像看到的表格,Collection只有一列,所以叫单列集合,而Map有两列,Map的一个元素分为两部分,一列存键,一列存值,并且键唯一不能重复。   下来,先看看Collection集合。   Collection       |---List  元素不唯一,存储和了取出顺序一致。           |---ArrayList 底层数据结构是数组。特点:查询快,增删慢,线程不安全,高效。           |---Vector   底层数据结构是数组。特点:线程安全,效率不如ArrayList,被ArrayList取代。           |---LinkedList  底层数据结构是链接列表。特点:增删快,查询慢。线程不安全,高效。       |---Set  元素唯一,但存储和取出顺序不一致。           |---HashSet  底层数据结构是哈希表。特点:依赖于哈希表。                 |---LinkedHashSet 

字典

半世苍凉 提交于 2019-11-28 08:32:12
--python的数据结构之一 字典--dict 定义:dic={"key":"value"} ---键值对 字典的作用:存储大量数据,将数据和数据起到关联作用 键:必须是不可变的数据类型(可哈希),且唯一 值:任意 可哈希 str int bool tuple 不可哈希list set dict 字典是一个可变数据类型,无序的 关联 字典的增 setdefault 分两步: 1.先查看键是否在字典 2.不存在的时候进行添加 字典的删 字典中没有remove() 字典的改 字典查 []( https://img2018.cnblogs.com/blog/1755501/201908 高仿列表不支持索引 面试题 解构 字典的嵌套 1-143100806.png) 来源: https://www.cnblogs.com/python25/p/11402474.html

Java中HashMap的实现原理

主宰稳场 提交于 2019-11-28 08:30:56
1、 什么是HashMap? 概念: map就是用于存储键值对(<key,value>)的集合类,也可以说是一组键值对的映射(数学概念) 有两个字段(或者说属性),keyset(键的集合)和values(值的集合),每一条记录都是一个entry(一个键值对)。 特点: 1、没有重复的key (一方面,key用set保存,所以key必须是唯一,无序的;另一方面,map的取值基本上是通过key来获取value,如果有两个相同的key,计算机将不知道到底获取哪个对应值;这时候有可能会问,那为什么我编程时候可以用put()方法传入两个key值相同的键值对?那是因为源码中,传入key值相同的键值对,将作为覆盖处理) 2.每个 key 只能对应一个 value, 多个 key 可以对应一个 value 3.key,value 都可以是任何引用类型(包括 null)的数据 关于哈希: 1、把任意长度的输入,通过一种函数(hashCode() 方法),变换成固定长度的输出,该输出就是哈希值(hashCode),这种函数就叫做哈希函数,而计算哈希值的过程就叫做哈希。 2、将key通过哈希算法计算出哈希值,把哈希值作为数组下标,把该下标对应的位置作为键值对的存储位置,通过该方法建立的数组就叫做哈希表,而这个存储位置就叫做桶(bucket)。 3、数组是通过整数下标直接访问元素

景霄讲解Python部分内部实现

你。 提交于 2019-11-28 07:28:09
问题一:列表和元组的内部实现 第一个问题,是胡峣同学提出的,有关列表(list)和元组(tuple)的内部实现,想知道里边是 linked list 或 array,还是把 array linked 一下这样的方式? 关于这个问题,我们可以分别从源码来看。 先来看 Python 3.7 的 list 源码。你可以先自己阅读下面两个链接里的内容。 listobject.h: https://github.com/python/cpython/blob/949fe976d5c62ae63ed505ecf729f815d0baccfc/Include/listobject.h#L23 listobject.c: https://github.com/python/cpython/blob/3d75bd15ac82575967db367c517d7e6e703a6de3/Objects/listobject.c#L33 我把 list 的具体结构放在了下面: 可以看到,list 本质上是一个 over-allocate 的 array。其中,ob_item 是一个指针列表,里面的每一个指针都指向列表的元素。而 allocated 则存储了这个列表已经被分配的空间大小。 需要注意的是,allocated 与列表实际空间大小的区别。列表实际空间大小,是指 len(list) 返回的结果

JavaSE--简答题

无人久伴 提交于 2019-11-28 07:16:48
1. final 、 finally 、 finalize 的区别。( 3 分) Ø final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 Ø finally 是异常处理语句结构的一部分,表示总是执行。 Ø finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 评分要求:共计 3 项,每项 1 分。 2.Error 和 Exception 的区别, Checked 异常和 Runtime 异常的区别 。( 6 分) Error 和 Exception 的区别 Ø Error 类,表示仅靠程序本身无法恢复的严重错误,比如说内存溢出、动态链接异常、虚拟机错误。应用程序不应该抛出这种类型的对象。假如出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以在进行程序设计时,应该更关注 Exception 类。 Ø Exception 类,由 Java 应用程序抛出和处理的非严重错误,比如所需文件没有找到、零作除数,数组下标越界等。它的各种不同子类分别对应不同类型异常。可分为两类: Checked 异常和 Runtime 异常。 Checked 异常和 Runtime 异常的区别 Ø 运行时异常:包括 RuntimeaException