Java集合注意点

单列集合(Collection)
请添加图片描述
Collection常用方法:add clear contains isEmpty remove size toArray addAll containsAll removeAll
注意:get是List接口的方法 不是collection的 set没有get方法 只能通过迭代器来获取

//迭代器的作用:获取集合中的所有的元素		
Collection coll = new ArrayList();
coll.add("jack");
coll.add("rose");
coll.add(10);
coll.add(20.2);
//1、获取迭代器对象
Iterator it = coll.iterator();
while(it.hasNext()) {
    System.out.println(it.next());
}
System.out.println(coll);

迭代器常见问题:

  • 1、迭代器迭代完成之后,迭代器的位置在最后一位。 所以迭代器只能迭代一次
  • 2、迭代器在迭代的时候,不要调用多次next方法,可能会出错 NoSuchElementException
  • 3、在迭代器迭代的时候,不能向集合中添加或者删除元素 ConcurrentModificationException

迭代器有三个方法:
hasnext 判断迭代器是否有下一个元素
next 返回当前光标的元素并将光标后移
remove 移除当前迭代器的对应元素

ArrayList
在这里插入图片描述
ArrayList Vector和LinkedList区别:

ArrayList和Vector是数组实现 LinkedList是双向链表 ArrayList线程不安全 效率高 当第一次add时才会创建数组 Vector线程安全 但是效率低 创建对象时就会创建数组
HashSet
底层就是HashMap 去重原理和HashMap一样:先比较hash 一样再通过equals比较
TreeSet
通过比较器来实现去重和排序 所以TreeSet必须实现Comparable接口

Collections工具类
Collections.reverse(List<?> list) 将list元素反转 Collections.shuffle(List<?> list) 将list元素随机打乱
Collections.sort(List<?> list) 将集合元素排序

MAP
在这里插入图片描述

Hashtable是线程安全的 HashMap线程不安全 Hashtable中不允许存储null为key-value Hashmap允许

实际开发一般都用HashMap 考虑线程安全用ConCurrentHashMap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值