转: java 双向map
package tools;
import java.util.HashMap;
public class DuplexMap<K,V> {
class Entry{
K k;
V v;
public Entry(K k,V v){
this.k=k;
this.v=v;
}
public K getK() {
return k;
}
public V getV() {
return v;
}
public void setK(K k) {
this.k = k;
}
public void setV(V v) {
this.v = v;
}
}
private HashMap<K,Entry> kEntyMap=new HashMap<K,Entry>();
private HashMap<V,Entry> vEntyMap=new HashMap<V,Entry>();
public boolean contains(K k){
return kEntyMap.containsKey(k);
}
public boolean containsValue(V v){
return vEntyMap.containsKey(v);
}
public V getByKey(K k){
Entry e=kEntyMap.get(k);
if(e==null){
return null;
}
return e.getV();
}
public K getbyValue(V v){
Entry e=vEntyMap.get(v);
if(e==null){
return null;
}
return e.getK();
}
public boolean put(K k,V v){
if(k==null||v==null){
return false;
}
Entry e=new Entry(k, v);
if(contains(k)){
remove(k);
}
if(containsValue(v)){
removeByValue(v);
}
kEntyMap.put(k, e);
vEntyMap.put(v, e);
return true;
}
public V remove(K k){
Entry e=kEntyMap.remove(k);
if(e==null){
return null;
}
vEntyMap.remove(e.getV());
return e.getV();
}
public K removeByValue(V v){
Entry e=vEntyMap.remove(v);
if(e==null){
return null;
}
kEntyMap.remove(e.getK());
return e.getK();
}
}
转自:http://www.oschina.net/code/snippet_83492_4187
转: java 双向map的更多相关文章
- apache_commons 之 双向Map DualHashBidiMap (使用及源码)
在项目当中,经常出现需要根据Key值获取value:而且要求根据value获取key值,其实在commons-collections包中已经提供了此集合类.就是DualHashBidiMap类. (官 ...
- java中Map,List与Set的差别
java中Map,List与Set的差别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,而且同一个数组 ...
- 错误:java.util.Map is an interface, and JAXB can't handle interfaces.
问题: 在整合spring+cxf时报错java.util.Map is an interface, and JAXB can't handle interfaces. 解决方法: 将服务端的serv ...
- Java中Map常用方法总结以及遍历方式的汇总
一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...
- Java 基础 Map 练习题
第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...
- java 遍历map 方法 集合 五种的方法
package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...
- JAVA/Android Map与String的转换方法
在Android开发中 Map与String的转换在,在一些需求中经常用到,使用net.sf.json.JSONObject.fromObject可以方便的将string转为Map.但需要导入jar包 ...
- java中map插入相同的key
测试用例: package test; import org.junit.Test; import po.Person; import java.util.HashMap; import java.u ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
随机推荐
- [DevExpress] - 在 DataGrid 中添加多选复选框的方法
设置方法 在 GridView 中设置 OptionSelection 属性如下: 效果 参考资料 https://stackoverflow.com/a/9078848http://blog.csd ...
- Java:session中的invalidate()的作用是什么呢?求解
手工杀会话.会话失效有2种可能:超时和手工杀会话.手工杀方便省时间,程序员都爱用. 比如我做一个程序需要登录,中间访问的页面有会话控制,如果没有登录则跳转到登录页面,退出时清会话信息. 这是有两个选择 ...
- 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
package com.hadoop.hdfs; import org.apache.hadoop.yarn.webapp.hamlet.Hamlet; import org.junit.Test; ...
- C++ 中 static 与 const 的用法及对比
在这个学习过程中我对 static 及 const 的使用时常会混淆,因此整理,加深记忆 一.类的静态成员 如果某个属性为整个类所共有,不属于任何一个具体对象,则采用 static 关键字来声明静态成 ...
- H5中表格的用法
1.表格的基本结构: 表格由行和列组成,单元格式表格的最基本单元;每个表格均有若干行,行标签由<tr></tr>定义,每行被分割为若干单元格,由<td></t ...
- VS.NET(C#)--1.5_VS菜单功能
VS菜单功能 文件菜单 1.新建 2.添加 编辑菜单 1.快速查找 ctrl+F 2.快速替换 ctrl+H 3.在文件中查找ctrl+shift+F 4.在文件中替换ctrl+shift+H ...
- Lambda 表达式动态拼接.
背景: 项目使用EF 查询时需要手动判断条件写.觉得太麻烦就Google 如何动态生成Linq.最后找到了 System.Linq.Dynamic.Core. 这个东西. Scott Guthrie ...
- k8s 开源web操作平台
https://kuboard.cn/install/install-dashboard.html kuborad
- Python基础初识
一.安装 暂时没空写,预留 二.python基础初识 2.1 注释 当行注释:# 被注释内容 多行注释:'''被注释内容''',或者"""被注释内容"" ...
- SAP Leonardo图片处理相关的机器学习服务在SAP智能服务场景中的应用
本文作为Jerry最近正在做的一个项目的工作思路的梳理. 我们假设这样一个服务场景,技师上门维修某设备,发现设备上某零件损坏了,假设这位技师由于种种原因,没能根据自己的经验识别出这个零件的型号.此时技 ...