Im与ArrayLists挣扎并且我的方法public static <T> Pair<T, Integer> mode(T items[])
必须返回最常见的字符(或字符串,或整数或双精度)以及它满足的次数在数组中。假设new String[]{"a","b","a"}
,所以该方法应返回"a", 2
。或者,另一个示例new Integer[]{30,10,10,20}
应该返回10, 2
(数组10中会遇到两次)。请有人指导我走向正轨?考虑到我不允许使用地图,集合......只有ArrayLists!通用类型:如何从通用类型数组中获取最常见的字符
import java.util.ArrayList;
public class Mode {
public static <T> Pair<T, Integer> mode(T items[])
{
ArrayList<T> trackItems = new ArrayList<>();
for(T values: items)
{
trackItems.add(values);
}
for(int i = 0; i < trackItems.size(); i++)
{
int count = (Integer)trackItems.get(i);
}
}
}
public class Pair<X,Y>{
private X first;
private Y second;
public Pair(X x, Y y){
this.first = x;
this.second = y;
}
public X getFirst(){
return this.first;
}
public Y getSecond(){
return this.second;
}
public boolean equals(Object o){
if(!(o instanceof Pair)){
return false;
}
Pair p = (Pair) o;
return
this.first.equals(p.first) &&
this.second.equals(p.second);
}
public String toString(){
return String.format("(%s,%s)",first,second);
}
}
嗯,你面对什么问题? – Tarik 2015-04-03 20:21:00
如何使用泛型找出最常见的字母或整数? @Tarik – Inferno 2015-04-03 20:22:10
如果您使用的是Java 8,ArrayList具有排序方法,这将使您可以轻松地对项目进行分组和计数。 – spudone 2015-04-03 20:24:37