import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
public class ChineseCharacterSortDemo {
public static void main(String args[]) {
ArrayList list = new ArrayList();
list.add(new Country(86, "中国"));
list.add(new Country(21, "加拿大"));
list.add(new Country(1, "美国"));
list.add(new Country(110, "阿富汗"));
Comparator cmp = new ChinsesCharComp();
Collections.sort(list, cmp);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Country s1 = (Country) iter.next();
System.out.println(s1.getCode() + "----" + s1.getName());
}
}
}
class ChinsesCharComp implements Comparator {
public int compare(Object o1, Object o2) {
Country c1 = (Country) o1;
Country c2 = (Country) o2;
Collator myCollator = Collator.getInstance(java.util.Locale.CHINA);
if (myCollator.compare(c1.getName(), c2.getName()) < 0)
return -1;
else if (myCollator.compare(c1.getName(), c2.getName()) > 0)
return 1;
else
return 0;
}
}
class Country {
private long code;
private String name;
public long getCode() {
return code;
}
public void setCode(long code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Country() {
}
public Country(long code, String name) {
this.code = code;
this.name = name;
}
}
大家看了代码以后,我们就开始说说吧,我们最先得new一个ArrayList();,这个完事以后,我们先来写一个while 循环,循环的条件是(iter.hasNext()) ,这样我们最后就是判断,判断的条件是myCollator.compare(c1.getName(), c2.getName()) < 0。大家要记住的是,我们返回的值一定要写对,而不是True和false。我说的话大家可要放在心上哦。千万不要给忘了。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
public class ChineseCharacterSortDemo {
public static void main(String args[]) {
ArrayList list = new ArrayList();
list.add(new Country(86, "中国"));
list.add(new Country(21, "加拿大"));
list.add(new Country(1, "美国"));
list.add(new Country(110, "阿富汗"));
Comparator cmp = new ChinsesCharComp();
Collections.sort(list, cmp);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Country s1 = (Country) iter.next();
System.out.println(s1.getCode() + "----" + s1.getName());
}
}
}
class ChinsesCharComp implements Comparator {
public int compare(Object o1, Object o2) {
Country c1 = (Country) o1;
Country c2 = (Country) o2;
Collator myCollator = Collator.getInstance(java.util.Locale.CHINA);
if (myCollator.compare(c1.getName(), c2.getName()) < 0)
return -1;
else if (myCollator.compare(c1.getName(), c2.getName()) > 0)
return 1;
else
return 0;
}
}
class Country {
private long code;
private String name;
public long getCode() {
return code;
}
public void setCode(long code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Country() {
}
public Country(long code, String name) {
this.code = code;
this.name = name;
}
}
大家看了代码以后,我们就开始说说吧,我们最先得new一个ArrayList();,这个完事以后,我们先来写一个while 循环,循环的条件是(iter.hasNext()) ,这样我们最后就是判断,判断的条件是myCollator.compare(c1.getName(), c2.getName()) < 0。大家要记住的是,我们返回的值一定要写对,而不是True和false。我说的话大家可要放在心上哦。千万不要给忘了。