JAVA中List集合的汉字排序

如题 List里放的是中文名称 我想按拼音首字母排序list里的汉字 有什么好的方法?
望大家踊跃发言!!
那要是 List里放的是javabean。并且该bean对象只有一个属性‘功能名称’,是汉字的功能名称。
又如何给该List排序?要求是按javabean中该属性的'功能名称‘的首字母拼音进行排序。 会根据回答加分的!!

先要设定list的排序规则 意思是要建立一个比较器 这个比较器就是装的两个中文的比较规则(按拼音首字母排序)

然后调用集合类的排序方法对list进行排序就行了。。。

汉字取拼音首字母有很多方法 你去网上搜下大把代码

bean的一样啊 举个例子吧:
class mybean implements Comparator
{

private String funcName;

public mybean()
{
}

public mybean(String func)
{
this.funcName = func;
}

public void setFuncName( String funcName)
{
this.funcName = funcName;
}

public String getFuncName()
{
return this.funcName;
}
public int compare(mybean o1, mybean o2)
{
String fname1 = o1.getFuncName();
String fname2 = o2.getFuncName();

//下面对fname和fnam2进行比较 比较规则是取fname1和fname2的拼音首字母进行比较 如果fname1的拼音首字母较大 则返回1 否则返回-1 相等返回0
}
}

然后 List<mybean> al = new ArrayList<mybean>();

al.add(new mybean("中国"));
al.add(new mybean("美国"));

最后再调用Collections.sort(al,new mybean());就可以对al中的mybean进行排序
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-24
中文的要按拼音字母排序,貌似直接是没有办法的吧...
有一种方法是需要先定义一个"字典",就像真实的字典一样,如:
你:ni
我:wo
好:hao
........
然后排序时汉字到"字典"中查找对应的拼音就可以排序啦
这种字典应该在网上可以找的到,已经有整理的啦。
这应该是种笨方法,不知是否有高人有好的办法
第2个回答  2010-06-24
汉字排序的办法也有很多,就看你是要按照那种策略排序了。

1.如果仅仅是按汉字的ASCII码进行排序的话,那就和英文或者数字是一样的排序方法。(例如string a = new string("你");string b = new string ("我");if(a>b)...)

2.如果需要按照汉字的拼音排序的话,你就需要数据字典了。就是上面那位说的那样:("a","啊阿吖嗄腌锕锕");
第3个回答  2010-06-24
("a","啊阿吖嗄腌锕锕");
("ai","爱矮挨哎碍癌艾唉哀蔼隘埃皑嗌嫒瑷暧捱砹嗳锿霭乂乃伌僾儗凒剀剀叆呃呝啀嘊噫嗳堨塧壒娭娾嫒嵦爱懓懝敱敳昹暧欬唉毐溰溾濭烠焥瑷皑皧瞹硋磑碍絠薆蔼諰譪譺賹躷醷鎄鑀阂阂阨阸隑霭靉餲馤呆鯦鱫鴱崖");
("an","按安暗岸俺案鞍氨胺庵揞犴铵桉谙鹌埯黯侒儑匼厈咹唵啽垵垾堓婩媕屽峖晻洝玵痷盦盫碪罯腤荌庵萻葊蓭裺誝谙豻貋遃钳铵錌钳暗阴隂隌雸鞌韽顸頞顸馣鮟鴳鹌鶕");
("ang","昂肮盎仰昂岇昻枊腌醠肮");
("ao","袄凹傲奥熬懊敖翱澳嚣拗媪廒骜嗷坳遨聱螯獒鏊鳌鏖岙厫嗸噢嚻嚣垇墺墽奡奥媪嫯岰嶅嶴慠扷抝摮擙柪梎棍泑滶澚熝爊獓璈眑磝硗礉翶翺芺蔜蝹袄謷謸軪郩鏕镺隞骜鳌鴁鴢鷔鳌");
("ba","把八吧爸拔罢跋巴芭扒坝霸叭靶笆疤耙捌粑茇岜鲅钯魃菝灞仈叐哱哵坺垻墢坝夿妭峇弝抜抪朳杷柭欛湃炦犮玐癹皅矲笩紦罢羓胈茷萆蚆覇詙豝跁軷釛釟钯颰魞鮁鮊鲃鲌鼥");
("bai","百白摆败拜佰稗掰庍拝挀排摆败栢派猈竡粨粺絔薜薭摆贁鞁鞴韛");
("ban","半办班般拌搬版斑板伴扳扮瓣颁绊癍坂钣舨阪瘢坢埿姅岅怑搫攽斒昄朌柈湴瓪秚籓粄绊肦蝂螁螌褩覂豳跘辧钣鉡板靽颁魬鳻");
("bang","帮棒绑磅镑邦榜梆膀谤浜蒡嗙垹埲塝嫎峀岗幇幚帮旁挷捠搒棓牓玤硥稖纺绑縍艕蚄蛖蜯螃谤邫镑鞤騯髈");
("bao","包抱报饱保暴宝爆豹刨雹褒堡苞胞鲍炮龅孢煲褓鸨趵葆佨儤剥勹勽嘐嚗堢报媬嫑寚寳宝忁怉曓枹珤炮窇笣簿緥菢蕔藵虣蚫袌袍裒裦襃賲刨刨铇闁靌靤飹饱駂骲髱鲍鳵鸨龅宀");
("be","萡");
……

你需要的是这样的数据字典

java怎么将List里面数据排序
1. 创建一个学生实体类,该类包含姓名和年龄属性。2. 在实体类中实现Comparable接口,并重写compareTo方法。3. 在compareTo方法中,首先按照姓名升序比较,如果姓名相同,则按照年龄升序比较。4. 使用List类的sort(Comparator c)方法或Collections工具类的sort(List list)方法对列表进行排序。或者:1. 创...

java 怎么将List里面数据排序
第一种:实体类自己实现比较 (实现comparable接口:public interface Comparable<T> ,里面就一个方法声明:public int compareTo(T o); )然后利用List类的sort(Comparator<? super E> c)方法或java.util.Collections工具类的sort(List<T> list) (其实里面就一句:list.sort(null); )进行排序:...

java如何让list按照list里面的某个字段排序,list里面的有很...
1. 使用Collections.sort方法或List的sort方法:Java提供了对List进行排序的功能,可以通过Collections.sort方法或List自身的sort方法实现。这些方法可以根据元素的自然顺序或者通过传递一个Comparator对象来自定义排序规则。2. 自定义Comparator实现:如果要按照List中的某个字段进行排序,需要创建一个实现了Compara...

java编程中对list集合进行排序的问题?
创建测试类,初始化列表并排序。生成随机学生数据,加入列表。执行排序操作。查看排序结果。示例排序结果:java List studentList = new ArrayList>();\/\/ 添加20个随机学生数据 Collections.sort(studentList);排序后列表展示:java \/\/ 排序后的学生列表 在上述示例中,所有学生的数据类型应统一为整型(int...

该如何在java中用字符排序
public static void main(String[] args) { Scanner scanner = new Scanner(System.in);\/\/用于存放输入的内容 List<String> list = new ArrayList<String>();int i = 0;\/\/实现3次输入,并存入于list中 while (i++ != 3) { String s = scanner.next();list.add(s);} \/\/输出未排序...

【Java基础】Java8 使用 stream().sorted()对List集合进行排序
java List students = Arrays.asList(new Student("张三", "男", 20, 170, LocalDate.of(1990, 1, 1)),new Student("李四", "女", 22, 165, LocalDate.of(1992, 2, 2)),\/\/ ...);对于排序,你可以根据需要选择不同的排序方式。例如,升序按年龄排序:java List sortedByAgeAscending...

java 中有城市类 存在arraylist 怎么让它按名字首字母排序
import java.util.ArrayList;import java.util.Comparator;public class ListDemo {public static void main(String[] args) {ArrayList<String> city = new ArrayList<String>();city.add("Jonesboro");city.add("Chaohu");city.add("LittleRock");city.add("bridgeport");city.add("Rome");city...

java中list存储有顺序吗
list是有顺序的,hashset是无序的,treeset是有序的

java list排序出错
先进行首位数字的比较,得到3在前4在后 (因为3最小)接着进行第二位的比较,依次类推,进行排序,输出上面的内容. (注意这可不是按照数字的大小排的,如果你有一个数是5,则5应该排在最后,即 3 324 34324324 5 实际上,Collections.sort对List进行了自然排序是因为你比较的对象String实现了Comparable接口...

java中一个List集合,放的都是从不同的表中查出来的数据,请问我怎样可 ...
用 Collections.sort()排序,给你个例子,你参考下 import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class $ { public static void main(String[] args) { List<Bean> data = new ArrayList<Bean>(); data.add(new ...

相似回答