- 浏览: 3544807 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
有天在网上看到过一个面试的问题,java的Map,是怎么实现的,
当然,类似我们这样的菜鸟,肯定只会回答Hash表吧,虽然没看过代码的实现,但是
光是从HashMap不就能看出来啊,那老师又问,请问还可以用什么方法现实,
那人回答说用数组,我印象中,那个老师好像说的不行,今天在书中看到了用数组实现MAP,
写了代码分享心得简单实现而已:
package endual.job; public class ArrayDictionary<K,V> { private class Entry<S,T> { private S key ; private T value ; public S getKey() { return key; } public void setKey(S key) { this.key = key; } public T getValue() { return value; } public void setValue(T value) { this.value = value; } } private Entry<K,V>[] dict ; private int currentSize ; private final static int DEAFULT_CAPACITY = 25 ; public ArrayDictionary() { this.dict = new Entry[DEAFULT_CAPACITY] ; this.currentSize = 0 ; } public void add(K k, V v) { Entry<K,V> entry = new Entry<K,V>() ; entry.setKey(k) ; entry.setValue(v) ; for (int i=0; i<this.currentSize;i++) { Entry<K,V> e = dict[i] ; K key = e.getKey() ; if (key == k) { // 如果存在,那么覆盖原来的值 dict[i] = entry ; //break ; return ; } } //如果是不存在呢,那就添加一个 this.dict[this.currentSize] = entry ; this.currentSize++ ; } public V get(K k) { V v = null ; for (int i=0; i<this.currentSize; i++) { Entry<K,V> e = dict[i] ; K key = e.getKey() ; if (key == k) { // 如果存在,那么覆盖原来的值 v = dict[i].getValue() ; break ; } } return v ; } }
测试:
package endual.job; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayDictionary< String, Integer> ad = new ArrayDictionary<String, Integer>() ; ad.add("1", 1) ; ad.add("2", 2) ; Integer i1 = ad.get("1") ; Integer i2 = ad.get("2") ; Integer i3 = ad.get("3") ; System.out.println(i1); System.out.println(i2); System.out.println(i3); } }
运行结果:
1 2 null
发表评论
-
snmp
2020-04-13 11:07 421https://www.iteye.com/blog/zhan ... -
snmp
2020-04-10 21:33 556https://blog.csdn.net/qq_333141 ... -
服务器监控软件
2019-12-31 11:07 505[ERROR] org.hyperic.sigar.Sigar ... -
多数据源
2019-12-23 22:09 445https://gitee.com/baomidou/dyna ... -
mybatis多数据源
2019-12-23 18:09 440https://blog.csdn.net/qq_288042 ... -
springboot ueditor
2019-12-17 18:26 370https://blog.csdn.net/u01216982 ... -
java支持多数据源
2019-12-13 15:59 446spxcms是否支持多数据源 ... -
java日志
2019-12-10 12:01 286https://blog.csdn.net/peng_wei_ ... -
spring 多数据源
2019-12-06 09:55 424https://www.jb51.net/article/10 ... -
idea
2019-12-04 17:13 404https://blog.csdn.net/dengachao ... -
手机大屏
2019-11-30 16:02 338http://demo.demohuo.top/modals/ ... -
quarz配置
2019-11-08 11:48 452https://blog.csdn.net/BryantLmm ... -
mysql同步
2019-11-06 12:20 344https://blog.csdn.net/baidu_418 ... -
nginx配置多个服务
2019-11-04 20:35 762https://blog.csdn.net/everljs/a ... -
h5 加壳
2019-11-04 16:05 622https://jingyan.baidu.com/artic ... -
jeui 前端框架
2019-10-22 14:30 1189http://www.jemui.com/demo/ http ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ htt ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/
相关推荐
这篇博客文章(链接已省略)可能介绍了如何通过二维数组实现这个概念。 首先,我们需要理解二维数组的基本概念。在Java中,二维数组本质上是一个数组的数组,它由多个一维数组组成,形成一个矩阵。我们可以将其视为...
Java map存放数组并取出值代码详解可以使用不同的方法来实现,包括使用map.keySet()方法和map.entrySet()方法。同时,也可以将map转化为ArrayList,然后使用Collections.sort()方法来对ArrayList进行排序。
在Java中,HashMap的实现方式有多种,本文将介绍使用数组和链表的方式简单实现HashMap的增删改功能。 HashMap的数据结构 HashMap的数据结构主要由三个部分组成:数组、链表和红黑树。数组用于存储键值对,链表用于...
在Java编程语言中,数据结构之间转换是常见的需求,尤其是集合框架中的List、Set和Map以及数组。本文将深入探讨这些数据结构之间的转换方法,并提供相关的实例代码。 1. **List转Set** 要将一个List转换为Set,...
附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据
例如,ArrayList底层基于数组实现,适合随机访问,但在大量数据的中间插入和删除操作性能较差;而LinkedList基于双向链表实现,在列表中间插入和删除操作性能较好,但随机访问性能差。在多线程环境下使用集合时,...
这里我们将深入探讨Java中如何实现和使用函数数组。 1. **接口与函数式接口** Java 8引入了函数式接口的概念,它们是只有一个抽象方法的接口,可以被用作Lambda表达式的类型。例如,`Runnable`、`Callable` 和 `...
"java 遍历Map及Map转化为二维数组的实例" 在 Java 编程语言中,遍历 Map 及将其转化为二维数组是一种常见的操作。本文将详细介绍如何使用 Java 遍历 Map 及将其转化为二维数组,并提供实例代码以供参考。 1. 使用...
ArrayList、HashSet 和 TreeSet 是 Java 中常用的集合实现类。ArrayList 是一个动态数组,HashSet 是一个不允许重复元素的集合,TreeSet 是一个有序的集合。 数组 数组是一种基本的数据结构,用于存储一组相同类型...
特别是ArrayList,基于动态数组实现,提供高效的随机访问;而Vector则是线程安全的,但在多线程环境下性能较低,因为每次操作都需要同步。 然而,Map提供了一种更为通用的数据存储方式。它不按照数值索引存储元素,...
在编程领域,大数阶乘是一项挑战性的任务,...总的来说,用动态数组实现大数阶乘涉及了动态内存管理、大数表示、大数乘法和进位处理等多个核心知识点。这样的实现方式既灵活又高效,能够有效地处理大整数的阶乘计算。
总结来说,Java中的`Map`接口不能直接排序,但可以通过使用`SortedMap`接口的实现如`TreeMap`来实现排序。`TreeMap`可以根据键的自然顺序或提供的比较器对键进行排序。在给定的代码中,通过`mapSortByKey`方法实现了...
"Java中对象数组的使用方法详解" Java中对象数组的使用方法详解是Java编程语言中一个非常重要的概念。对象数组是指以类为数据类型的数组变量,这个数组变量可以存放多个对象。Java中对象数组的使用方法可以分为四...
在Java编程语言中,数组、枚举和注解是三个重要的概念。数组是存储固定数量相同类型元素的数据结构,而枚举则是一种特殊的类,用于定义有限的常量集合。注解则是元数据的一种形式,提供了在代码中添加元信息的能力。...
Java中的数组和集合是两种重要的数据结构,它们在存储和管理数据方面发挥着关键作用。数组是最基础的数据结构,而集合则提供了更高级、更灵活的处理方式。 数组在Java中是一个固定大小的序列,用来存储同一类型的...
Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会记录插入顺序,也不保证顺序。如果需要有序的Map,可以使用TreeMap,它会根据键的自然顺序进行...
在Java中,"javamap"和"地图_java"可能是指使用Map类来模拟现实世界中的地理地图,例如通过键表示地理位置,值表示该地点的信息。这涉及到自定义类作为键值对中的元素类型,以及如何设计键值对以适应特定需求的问题...
Java 中数组判断元素存在的四种方式分别是通过将数组转换成 List,然后使用 List 中的 contains 进行判断、使用 Set 进行实现判断是否存在、使用循环来实现、使用 org.apache.commons.lang3.ArrayUtils 中的 ...
根据提供的标题、描述、标签及部分内容,我们可以详细探讨在Java中如何实现`List`、`Set`、`Map`以及数组之间的相互转换。这是一项在实际编程中非常实用且常见的需求,尤其对于处理数据结构变换时极为重要。 ### 1....
本文将介绍如何在Java中实现动态改变数组长度以及如何将数组转换为Map。 首先,让我们探讨如何动态地改变数组长度。在Java中,一旦数组被创建,它的大小是固定的,不能直接增加或减少。但是,我们可以创建一个新的...