求助,急 JAVA如何使用一个for循环语句遍历两个数组找出比较两个数组出现相同次数最多的值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建个map,遍历时吧值当做map的key,每出现一次key值+1,最后取map就行了 按楼上的思路~public class TimesTotal<T> { public static void main(String[] args) { Integer key1 = new TimesTotal<Integer>() .sameTimes(new Integer[] { 1, 2, 2, 2, 1, 3, 4, 5 }, new Integer[] { 1, 2, 3, 1, 4, 5, 2, 2 }); Double key2 = new TimesTotal<Double>().sameTimes(new Double[] { 1.0D, 2.0D, 2.0D, 2D, 1.0D, 3.0D, 4.0D, 5.0D }, new Double[] { 1D, 2D, 2D, 2D, 1D, 3D, 4D, 5D }); System.out.println(key1); System.out.println(key2); } public T sameTimes(T[] arr1, T[] arr2) { if(null == arr1 || null == arr2){ return null; } Map<T, Integer> mapArr1 = new HashMap<T, Integer>(); Map<T, Integer> mapArr2 = new HashMap<T, Integer>(); for (T a : arr1) { int total = mapArr1.get(a) == null ? 0 : mapArr1.get(a); mapArr1.put(a, total + 1); } for (T a : arr2) { int total = mapArr2.get(a) == null ? 0 : mapArr2.get(a); mapArr2.put(a, total + 1); } Entry<T, Integer> entry = null; Set<Entry<T, Integer>> entrySet = mapArr1.entrySet(); Iterator<Entry<T, Integer>> ite = (Iterator<Entry<T, Integer>>) entrySet .iterator(); while (ite.hasNext()) { Entry<T, Integer> e = ite.next(); Integer times2 = mapArr2.get(e.getKey()); if (null == times2) { continue; } if (e.getValue().equals(times2)) { if (null == entry || e.getValue().compareTo(entry.getValue()) >= 0) { entry = e; } } } return entry == null ? null : entry.getKey(); }} 只能用一个for循环,也不能使用集合,具体的代码实现是怎样的? 只能用一个for循环,也不能使用集合,具体的代码实现是怎样的? 关于线程的一个问题 哪些人用tomcat birt生成html报表出错 Hibernate one-to-many问题 关于ibatis 的一个问题 Weblogic发布不方便 新手问题,请问一下fromBean具体作用是什么? 大家帮我看看啊。。。。tomcat5.028已经重装了,为什么启动还是有异常呢? 开始学J2EE了,请大家给些建议! session bean调用普通bean为什么不好使?再线等 在linux部署项目报错 在mybatis中如何设置统一的标签标识增删改查
public static void main(String[] args) {
Integer key1 = new TimesTotal<Integer>()
.sameTimes(new Integer[] { 1, 2, 2, 2, 1, 3, 4, 5 },
new Integer[] { 1, 2, 3, 1, 4, 5, 2, 2 });
Double key2 = new TimesTotal<Double>().sameTimes(new Double[] { 1.0D,
2.0D, 2.0D, 2D, 1.0D, 3.0D, 4.0D, 5.0D }, new Double[] { 1D,
2D, 2D, 2D, 1D, 3D, 4D, 5D }); System.out.println(key1);
System.out.println(key2);
} public T sameTimes(T[] arr1, T[] arr2) {
if(null == arr1 || null == arr2){
return null;
}
Map<T, Integer> mapArr1 = new HashMap<T, Integer>();
Map<T, Integer> mapArr2 = new HashMap<T, Integer>();
for (T a : arr1) {
int total = mapArr1.get(a) == null ? 0 : mapArr1.get(a);
mapArr1.put(a, total + 1);
}
for (T a : arr2) {
int total = mapArr2.get(a) == null ? 0 : mapArr2.get(a);
mapArr2.put(a, total + 1);
} Entry<T, Integer> entry = null;
Set<Entry<T, Integer>> entrySet = mapArr1.entrySet();
Iterator<Entry<T, Integer>> ite = (Iterator<Entry<T, Integer>>) entrySet
.iterator();
while (ite.hasNext()) {
Entry<T, Integer> e = ite.next();
Integer times2 = mapArr2.get(e.getKey());
if (null == times2) {
continue;
}
if (e.getValue().equals(times2)) {
if (null == entry
|| e.getValue().compareTo(entry.getValue()) >= 0) {
entry = e;
}
}
} return entry == null ? null : entry.getKey();
}
}