想请教下关于字符串数组元素相互比较然后进行统计的问题. 我有个String类型的数组,称为str,假定有6个元素,现赋值如下:
str[0]="apple";
str[1]="orange";
str[2]="apple";
str[3]="banana";
str[4]="apple";
str[5]="orange";
如果我们把值相同的元素记数为1次,对上述数组各元素进行比较和统计,求共有几种不同的水果(当然根据上面的是3种)。我现在对如何实现这样的逻辑和对元素值比较的应用感到比较困惑,不知大家能否解释一下,说说该用怎么样的逻辑比较好,最好的话能用代码说明一下,感谢大家lol!
str[0]="apple";
str[1]="orange";
str[2]="apple";
str[3]="banana";
str[4]="apple";
str[5]="orange";
如果我们把值相同的元素记数为1次,对上述数组各元素进行比较和统计,求共有几种不同的水果(当然根据上面的是3种)。我现在对如何实现这样的逻辑和对元素值比较的应用感到比较困惑,不知大家能否解释一下,说说该用怎么样的逻辑比较好,最好的话能用代码说明一下,感谢大家lol!
String[] str = new String[6];
str[0]="apple";
str[1]="orange";
str[2]="apple";
str[3]="banana";
str[4]="apple";
str[5]="orange";
Set<String> set = new HashSet<String>();
for(String st:str)
set.add(st);
System.out.println("共有" +set.size()+"种水果");
}
我自己的想法是,从apple开始逐个往下比,然后如果找到相同的元素apple,则count++,直到结束,然后再从orange开始,按比较apple的方法走下去,依次类推了。不过问题是如果一个数组元素很多,那这种方法就不好了,所以不清楚应该怎么做啦。
class{
private String fruitName;
private int num;
}
java已经实现了类似链表的功能。放到list当中就可以了
数据结构和算法里面有很多例子,著名的冒泡排序、二分查找……你想了解处理逻辑可以去看这些书
现在java中提供了很多具体的方法来实现这些,所以我们尽量使用这些,避免重复“造轮子”