最近写程序需要用到一种结构,像HashMap的,但是却是一对一的这种结构。网上查询未果,自己用两个ArrayList进行封装。现在写出来以作抛砖引玉,希望得到大家的相关意见及建议。
/*
* @(#)DoubleKeyMap.java Project:RTKSETTINGS
* Date:2013-1-9
*
* Copyright (c) 2013 Geek_Soledad.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.realtek.msdx.rtksettings.util;
import java.util.ArrayList;
/**
* 一对一的双键类。
*
* @author Geek_Soledad (msdx.android@tom.com)
*/
public class DoubleKeyMap<K1, K2> {
private ArrayList<K1> key1s;
private ArrayList<K2> key2s;
public DoubleKeyMap() {
key1s = new ArrayList<K1>();
key2s = new ArrayList<K2>();
}
/**
* 加入一一对应的双键。
*
* @param k1
* 键1
* @param k2
* 键2
*/
public DoubleKeyMap<K1, K2> add(K1 k1, K2 k2) {
if (k1 == null || k2 == null) {
throw new IllegalArgumentException(
"both the parameters could not be null.");
}
if (key1s.contains(k1)) {
throw new IllegalArgumentException("the key1 has been put");
}
if (key2s.contains(k2)) {
throw new IllegalArgumentException("the key2 has been put");
}
key1s.add(k1);
key2s.add(k2);
return this;
}
/**
* 由键2取得键1
*
* @param k2
* 键2
* @return 返回对应的键1
*/
public K1 getKey1(K2 k2) {
return key1s.get(key2s.indexOf(k2));
}
/**
* 由键1 取得键2
*
* @param k1
* 键1
* @return 返回对应的键2
*/
public K2 getKey2(K1 k1) {
return key2s.get(key1s.indexOf(k1));
}
}
分享到:
相关推荐
4×4键盘按键显示对应键值程序(4×4键盘按键显示对应键值程序)
Protues仿真四按键显示对应键值
基于单片机的,其程序运行后,按其键数码管会显示相应的键值
关于多值域一一对应,分类后一一对应显示的问题
delphi 键值对应码表,判断从键盘敲到啥键获取对应的键值
管理员取得所有权注册表键值,双击执行,写入注册表即可。
下面小编就为大家分享一篇java 将jsonarray 转化为对应键值的jsonobject方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
keydown()在键盘中按键对应的键值,比较完整!
注册表常用键值意义 "HomePage"=dword:00000001 ;禁止更改主页设置〖0=可修改〗
本文实例讲述了js获取对象,数组所有属性键值(key)和对应值(value)的方法。分享给大家供大家参考,具体如下: [removed] var values=function(object) { var values = []; for (var property in object) values....
查看android上遥控器,或者虚拟按键的键值。安装后按遥控器就会显示对应键值
小班数学教案:一一对应.doc
最全ASCII对应码表-键值 最全ASCII对应码表-键值
Android 电视TV 遥控器键值对应表 互联网盒子 电视机顶盒
连续函数的一一对应性与单调性的关系及反函数的性质,曾小林,,反函数作为数学分析必不可少的概念,在高等数学的教学研究中得到不少关注.本文对单个区间上的连续函数指出其一一对应性与单调性是�
单片机外接8个独立式按键和8位一体的数码管,按键后,数码管的对应位置显示对应按键的键值。 例如按下第2个按键,就在第2个数码管上显示“2” 按下第3个按键,就在第3个数码管上显示“3” 注意:按键扫描程序和动态显示...
最近在项目中使用ajax返回的是一个map...//通过遍历对象属性的方法,遍历键值对,获得key,然后通过 对象[key]获得对应的值 name = key; value = changes[key];} 以上这篇Js遍历键值对形式对象或Map形式的方法就是小编
用FPGA实现16位矩阵键盘键值在数码管的显示,按下按键时对应的键值会显示在数码管上。包含了所需要的所有源代码。
hashMap可以通过一个键值与一个对象一一对应的关系找到我们要找的对象,再调用对象里面的方法
2.由于软件现在还不是很完善,没有表明键值所对应的按键,我把对应的按键标在图片上了。如图 3.说明一下。在键值转换设定里面的转换键值栏里面更改物理按键键值,将需要更改的改成手机上现有按键的键值。比如原...