集合之list与set的部分操作

集合(Collection)

  1. 可以是不同类型的;(泛型:泛型的本质是参数化类型,也就是所操作的数据类型被指定为一个参数。)使用泛型后只能存储同一类型;
  2. 可以重复;
  3. 无序的,存入顺序与取出顺序不一定相同;

List

List list = new ArrayList();
list.add(value); // 在末尾添加
list.get(key); // 取出key对应的value
list.add(key, value); // 在key处添加value,导致之后的元素整体移动
list.remove(key/value); // 删除key处的元素或者值为value的元素;注意整型元素会被当成索引,所以整型元素的删除需要依靠遍历
// 使用remove()的方法时,要先从大到小的位置移除。当然如果你知道具体的对象,直接移除remove(对象)更稳妥。
  1. 可以存储不同类型的元素;
  2. 存储基础类型时会进行自动装箱,即int类型自动装箱成Integer
  3. 按照索引进行存取;
  4. 有序的,取出的是顺序和存入的顺序一致;

Set

  1. 不会存储重复的元素;
  2. 无序,存入和取出的顺序不一定相同;

HashSet

Set<T> hashSet = new HashSet<T>();
hashSet.add(value); // 添加元素
hashSet.size(); // 当前大小
hashSet.remove(value); //删除
hashSet.clear(); // 清空
hashSet.isEmpty(); // 判空, 返回boolean型
hashSet.contains(value); // 查找, 返回boolean型
  1. 底层由HasMap实现,插入的元素被当作是HashMap的key, 根据HashCode值来圈定集合中的位置;
  2. 当需要获取其中的某个元素时,只能通过遍历的方式;

版权声明:本文为qq_45934120原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。