(一)练习:去除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; } (二)TreeSetTreeSet集合中的对象需要具有比较性 比较器: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; }
|