首页 > 代码库 > java面试2
java面试2
1、list中去重(无序,有序)
2、list中记录每个出现次数,并去重
public static void main(String[] args) {
List<String> li2 = new ArrayList<String>();
li2.add("11");
li2.add("11");
li2.add("22");
li2.add("22");
li2.add("133");
li2.add("33");
li2.add("33");
li2.add("44");
li2.add("44");
li2.add("11");
List<Map> li3 = new ArrayList<Map>();
Map pd = new HashMap();
pd.put("tel", "1111");
Map pd1 = new HashMap();
pd1.put("tel", "1112");
Map pd2 = new HashMap();
pd2.put("tel", "1111");
Map pd3 = new HashMap();
pd3.put("tel", "1113");
Map pd4 = new HashMap();
pd4.put("tel", "1113");
Map pd5 = new HashMap();
pd5.put("tel", "1114");
Map pd6 = new HashMap();
pd6.put("tel", "1114");
Map pd7 = new HashMap();
pd7.put("tel", "1115");
li3.add(pd);
li3.add(pd1);
li3.add(pd2);
li3.add(pd3);
li3.add(pd4);
li3.add(pd5);
li3.add(pd6);
li3.add(pd7);
System.out.println("无序去重 ");
quchong(li2);
System.out.println("有序去重 ");
quchong2(li2);
System.out.println("记录次数 ");
showTimes(li3);
}
public static void quchong(List<String> li2) {
HashSet<String> set = new HashSet<String>(li2);
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
}
//保持顺序的去重
public static void quchong2(List<String> li2) {
for(int i=0;i<li2.size()-1;i++){
for(int j=li2.size()-1;j>i;j--){
if(li2.get(i).equals(li2.get(j))){
li2.remove(j) ;
}
}
}
System.out.println(li2.size());
}
//记录出现的次数
public static void showTimes(List<Map> li3) {
for(int i=0;i<=li3.size()-1;i++){
int count=1;
for(int j=li3.size()-1;j>i;j--){
if(li3.get(i).get("tel").equals(li3.get(j).get("tel"))){
count += 1;
li3.remove(j);
}
}
li3.get(i).put("count", count);
}
for(Map m:li3){
System.out.println(m.get("tel")+"count:"+m.get("count"));
}
}
控制台打印结果:
无序去重
133
44
22
33
11
有序去重
5
记录次数
1111count:2
1112count:1
1113count:2
1114count:2
1115count:1
3、还有就是遍历叶子节点,本人暂时认为用递归思想,有事,稍后再更。。。。
java面试2