黑马程序员技术交流社区
标题: java基础--集合练习 [打印本页]
作者: 周发建 时间: 2016-3-25 14:43
标题: java基础--集合练习
(一)练习:去除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;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |