TreeSet练习题

来源:互联网 发布:海关数据库的企业代码 编辑:程序博客网 时间:2024/05/22 19:50

1.存储不同长度的不重复的字符串,将其按照长度进行排序:

package collectionTest;import java.util.*;public class Test {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub            sortStringByLength();            sortStringByLength2();    }    public static void sortStringByLength() {        // TODO Auto-generated method stub        //不重复字符串,按长度进行排序        Set set = new TreeSet(new ComparatorByLength());        set.add("aaa");        set.add("zzzzzzzzzzs");        set.add("zz");        set.add("zzzz");        for(Object obj :set){            System.out.println(obj);        }    }}

ComparatorByLength类:

package collectionTest;import java.util.Comparator;public class ComparatorByLength implements Comparator {//实现了比较器接口,并重写了compare方法    @Override    public int compare(Object o1, Object o2) {        // TODO Auto-generated method stub        String s1 = (String)o1;        String s2 = (String)o2;        int temp = s1.length()-s2.length();        return temp==0?s1.compareTo(s2):temp;    }}

2.对多个重复的不同长度的字符串按照长度进行排序:

public static void sortStringByLength2() {        // TODO Auto-generated method stub        String[] str = { "hellowolrd", "nba", "cbaaa", "daddy", "hellowolrd","nba", "cbaaa", "daddy" };        //自然排序可以使用String类中的compareTo方法        //但现在需要长度排序,这个时候需要比较器;        //定义一个按照长度比较的比较器        // 用嵌套循环来排序        Comparator comp = new ComparatorByLength();        for (int x = 0; x < str.length - 1; x++) {            for (int y = x + 1; y < str.length; y++) {                //if (str[x].compareTo(str[y]) > 0) {  自然排序                if(comp.compare(str[x], str[y])>0){                    swap(str, x, y);                }            }        }        for(String a :str){        System.out.println(a);        }        }    private static void swap(String[] str, int x, int y) {        // TODO Auto-generated method stub        String temp = str[x];        str[x] = str[y];        str[y] = temp;    }
0 0
原创粉丝点击