日期:2014-05-20  浏览次数:20725 次

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表中会有上万条数据要计算,还要考虑性能问题, 哎崩溃了~~~
------其他解决方案--------------------
引用:
哦 不好意思 应该是我没有描述清楚~~~ 字母与数字对应中间我还有一个算法就是 大意就是我要计算这两个值得距离 我要找到字母与数字对应的时候 必须保证是最小距离, 例如, 算出来之后 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 放最外面。
}

效率问题最后考虑。