Java运用中,主要是集合处理的一点小结

1.数组转集合

String[] array = {"a","b","c","d","e"};
List<String> list = Arrays.asList(array);
但是该集合list不能进行 add、remove、clear方法 否则会抛出异常,需要注意

2.集合转数组

String[] array = new String[list.size()];
array = list.toArray(array);

3.遍历Map集合用entrySet()

for (Map.Entry<String, String> entry:map.entrySet()){
    if ("age".equals(entry.getKey())){
        Log.e("entrySet遍历:",""+entry.getValue());
    }
}
entrySet()返回的是K-V集合 比keySet()速度快、效率高

4.List集合对象排序:List<Person> 根据Id排序

·4.1方式一:Person对象实现Comparable<T>接口,通过>0 =0 <0来比较大小,根据Id做排序 直接用id相减
public class Person implements Comparable<Person> {
 
 
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }
 
 
    public void setId(int id) {
        this.id = id;
    }
 
 
    public String getName() {
        return name;
    }
 
 
    public void setName(String name) {
        this.name = name;
    }
 
 
    public int getAge() {
        return age;
    }
 
 
    public void setAge(int age) {
        this.age = age;
    }
 
 
    @Override
    public int compareTo(Person another) {
        return  another.id - this.id;
    }
}
 
  
 
  
实现对List对象进行排序:
Collections.sort(persons);
for (Person p:persons){
    Log.e("排序:", "" + p.getId()+","+p.getName());
}

 
·4.2方式二:不实现Comparable接口,使用Collections.sort(List<T>, Comparator<T>)方法;
Collections.sort(persons, new Comparator<Person>() {
    @Override
    public int compare(Person lhs, Person rhs) {
        return  rhs.getId() - lhs.getId() ;
    }
});

5.不能在foreach循环里,对集合进行add、remove操作,否则会抛异常,需要使用iterator方式

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
    String tmp = iterator.next();
    if (tmp.equals("p")){
        iterator.remove();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值