java中遍历问题
问题:::: 我有3张表,A ,B C,现在我在A ,B中有数据,如A中有字母abcdefg,B中有1234567, 现在我将数字与字母相对应, 要求是 一个数字只能对应一个字母, 但是一个字母可以对应对个数字, 数字可以剩余, 如a-->1,2,3,4, 这时候数字1234 就不能再与其他字母相对应, 然后插入C表中。 现在 我就是不知道怎么判断 数字已经与 字母对应了~~ 而程序运行完之后 会出现这种情况a-->1,2,3,4 b-->2, 这样插入表中是错误的。
------最佳解决方案--------------------1.定义一个HashMap
2.判断HashMap中 是否存在当前要与字母对应的数字,如:
aaa=5,
if(map.containsKey(String.valueOf(aaa)))
{
//证明5已与字母对应
}esle
{
//对应字母,并插入C表
map.put(String.valueOf(aaa),String.valueOf(aaa));//放入map
}
------其他解决方案--------------------哦 不好意思 应该是我没有描述清楚~~~ 字母与数字对应中间我还有一个算法就是 大意就是我要计算这两个值得距离 我要找到字母与数字对应的时候 必须保证是最小距离, 例如, 算出来之后 a-->1 ,距离是2 ,
a-->2距离是 3.这个时候a与数字1,2都是满足算法,可以关联起来的 但是 这个时候我只能让a与1对应, 另外 A,B表中会有上万条数据要计算,还要考虑性能问题, 哎崩溃了~~~
------其他解决方案--------------------
这个涉及到特定的算法(业务),所以我也不好给你写demo
大致的意思就是
算法独立出来,封装成一个方法 methodA(String a,Ma)
然后方法返回 a对应的 数字 如 '1,3,4' 即 a--1,3,4距离相等,且最小
那么解析 返回结果 String result = methodA(String a,Ma);
result = '1,2,4';
String[] aa = result.split(',');
for(aa)//循环,简写
{
//这里写我刚才说的。但是hashmap 放最外面。
}
效率问题最后考虑。