A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 周发建 中级黑马   /  2016-3-25 14:43  /  592 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(一)练习:去除ArrayList重复
        //去除ArrayList集合中的重复元素。
        public static ArrayList getSingleEle(ArrayList al){
                //--1. 定义一个临时容器
                ArrayList temp = new ArrayList();
               
                //--2. 迭代al集合
                Iterator it = al.iterator();
                while(it.hasNext()){
                        Object obj = it.next();
                        //--3. 判断临时容器中是否存在该元素
                        if(!temp.contains(obj)){
                                temp.add(obj);
                        }
                }
                return temp;
}
(二)TreeSet
TreeSet集合中的对象需要具有比较性
比较器:Comparator
compare(T, T)
Comparable接口,对象实现这个接口,可以指定排序(对象具有比较性)
compareTo(T)
return temp ==0?this.name.compareTo(p.name):temp;
(三)练习:使用TreeSet,字符串长度排序
//使用TreeSet,字符串长度排序
/**
* 1. 字符串有自然排序,所以只能指定比较器来排序
* 2. 指定比较器,用字符串的长度来排序。
* TreeSet ts = new TreeSet(new ComparatorByLength());
*/
class ComparatorByLength implements Comparator{
        @Override
        public int compare(Object o1, Object o2) {
                String s1 = (String) o1;
                String s2 = (String) o2;
                int temp = s1.length() - s2.length();
                return temp == 0?s1.compareTo(s2):temp;
        }
}
(四)Map练习:打印出字符串出现的次数a(3)b(1)c(2)..
        //打印出一个字符串,字符出现的次数  a(3)b(2)c(3)...
        /**
         * Map查表
         * 有映射关系时,可以使用查表法;索引映射关系用数组;键值映射关系使用Map。
         */
        public static Map<Character, Integer> getkeyvalue(String str){
                Map<Character, Integer> map = new TreeMap<Character, Integer>();
                int index = 0;
                while(index<str.length()){
                        char c = str.charAt(index++);
                        int value = 1;
                        if(map.get(c)!= null){
                                value = map.get(c);
                                value++;
                        }
                        map.put(c, value);
                }
                return map;
}

您需要登录后才可以回帖 登录 | 加入黑马