Java 用TreeSet实现任意字符串求出出现次数最多的字符?

如题所述

第1个回答  2013-08-29
compareTo(), 我没用过。
但是复写equals 有关的方法时是一定要复写hashCode方法的,这可以当作一个定律。覆盖equals方式是为了能够正确的比较内容,譬如默认它会按数字比较,但你添加的比较范围 扩大了, 你要比的是 兽旗 那么大象大于狮子 就是你来定义的比较方式了。
list 的特点,就是有序的啊,正如所以如楼主所说集合的高效性是相对的,list 和list也不同的 LinkedList是链表式结构 ,查是非常快的,但是 你存的时候要排位置,当然就在存时体现低效了。 和 set比,当然 set是高效的, 但set不能存在相同元素, 这样想 那数组是不是又比 他们效率还高呢?这就是 java基础的重要性,你使用的类能把程序优化到什么程度,取决于你对基础知识的掌握, 同样的逻辑,实现很容易 ,但健壮它, 不是所有人都能做的很好的, 楼主加油吧 个人建议:虽然基础很重要。如果是新手入门 那么先简单了解基础 ,然后学会开发,之后再深入研究基础 比较王道。
第2个回答  2013-08-29
package com.jbase.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.TreeSet;

/**
* @author Mr Ge
* @version 创建时间:Jun 12, 2009 11:39:45 AM
* E-mail: [email protected]
* 类说明
*/

public class CharCount {
public static void main(String[] args)
{
try
{
System.out.println("plz enter String :");
String str=new BufferedReader(new InputStreamReader(System.in)).readLine(); //接受键盘输入字符串
print(str);
}
catch(IOException ioe)
{

}
}
/**
* 打印字符串中每个字符出现的次数
* @param str
*/
public static void print(String str)
{
TreeSet tree=new TreeSet();
char[] chars=str.toCharArray();
for(char c:chars)
{
tree.add(c);//用TreeSet集合特性添加不重复的字符
}
Iterator iterator=tree.iterator();
while(iterator.hasNext())
{
count((Character)iterator.next(),chars);//char 是普通类型,Character是char的封装类,JDK1.5以后会自动转换
}
}
/**
* 计算一个字符在字符数组中出现的次数
* @param c
* @param arrays
*/
public static void count(char c,char[] arrays)
{
int count=0;//局部变量
for(int i=0;i<arrays.length;i++)
{
if(c==arrays[i])
count++;
}
System.out.println("字符"+c+"出现"+count+"次!");
}

}本回答被网友采纳
相似回答