Collection集合常用方法

1、集合中不能存储基本数据类型,也不能直接存储Java对象,只能存储java对象的内存地址

2、Collection常用方法

  1. boolean add(Object o) 向集合中添加元素
  2. int size() 获取集合中的元素个数
  3. void clear() 清空集合
  4. boolean contains(Object o) 判断集合中是否包含元素,包含true
  5. boolean remove(Object o) 删除集合中的某个元素
  6. boolean isEmpty() 判断集合中个数是否为0
  7. Object[] toArray() 将集合转换为数组  再遍历数组
Collection c = new ArrayList();
c.add(123);
c.size();

3、集合遍历/迭代

Iterator it = c.iterator();
while(it.hasNext()){
    Object obj = it.next();
    System.out.println(obj);
}

4、集合结构发生改变,迭代器必须重新获取

在阿里开发规范上也有不要在foreach循环里进行remove/add操作,删除元素请使用Iterator中的remove方法,不要使用集合的remove方法,如果是并发操作,需要对Iterator对象进行加锁。

Collection c = new ArrayList();
c.add(123);
c.add("abc");
c.add("def");
Iterator it = c.iterator();
while(it.hasNext()){
    Object o = it.next();
    c.remove(o);//错误使用集合删除,迭代器机结构发生改变 出现ConcurrentModificationException异常
    it.remove();//正确 使用迭代器删除 删除迭代器指向的当前元素
    System.out.println(o);
}

5、去除重复元素的两种方法

1、创建一个空容器,如果空容器中不contains该元素,就将该元素添加

2、使用Set去重  addAll() 批量添加。

     //遍历后判断赋给另一个list集合
     public static void main(String[] args){
         List<String> list  =   new  ArrayList<String>(); 
         list.add("aaa");
         list.add("bbb");
         list.add("aaa");
         list.add("aba");
         list.add("aaa");
 
         List<String> newList = new  ArrayList<String>(); 
         for (String cd:list) {
            if(!newList.contains(cd)){
                newList.add(cd);
            }
        }
         System.out.println( "去重后的集合: " + newList); 
      }
//set去重
    public static void main(String[] args){
         List<String> list  =   new  ArrayList<String>(); 
         list.add("aaa");
         list.add("bbb");
         list.add("aaa");
         list.add("aba");
         list.add("aaa");
 
        Set set = new  HashSet(); 
         List newList = new  ArrayList(); 
         set.addAll(list);
         newList.addAll(set);
 
         System.out.println( "去重后的集合: " + newList); 
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值