0
点赞
收藏
分享

微信扫一扫

Java集合总结

高子歌 2022-04-13 阅读 184
java

1、Collection接口包括如下子接口:

List接口:实现类ArrayList、LinkedList、Vector

Set接口: HashSet、TreeSet、LinkedHashSet

2、Map接口

实现类:HashMap、LinkedHashMap、TreeMap、Hashtable、Properties

3、数组的弊端?

数组长度需要指定,一旦指定,无法修改;保存的必须为统一类型的元素;使用数组CRUD比较麻烦。

4、集合的好处?

集合可以动态保存任意多个对象,使用比较方便;提供了一系列方便操作对象的方法,方便CRUD。

5、Collection接口方法

add()添加对象;remove(int index);根据索引删除元素,remove(object o)删除指定元素;removeAll(Collection c);从集合中删除集合c的元素;查找bool contains(object o);是否包含某元素;size()元素个数;isEmpty()是否为空;clear()清空。addAll(Collection c)将集合c中的元素加入;containsAll(Collection c)查找多个元素是否都存在;

6、iterator接口有一个iterator()方法,而该接口是collection和map接口的父接口;

Iterator it = coll.iterator(); it.hasNext()方法判断是否有下一个元素,it.next()指针下移,取出元素。

itit回车 快速生成while循环遍历。

col.for增强for循环快捷键,增强for底层依然是iterator接口,简化了的迭代器。

system.out.println(obj);为什么会输出子类对象的值?因为重写了toString()方法;

6、List接口的常用方法

添加顺序与取出顺序一致,集合中元素有序;支持索引存取。

常用方法:add(index,ele)在index位置插入ele,没有索引,默认插到最后;addAll(index,Collection c)在索引index处插入集合c中的元素;int indexOf(obj)在集合中第一次出现的索引,lastIndexOf(int index)最后出现的索引;remove(int index)删除索引处的元素;set(int index,Object ele)修改索引处的元素为obj,索引必须存在;subList(from,to) 取子列表,[from,to)。

List中可以存放多个null,ArrayList是线程不安全的,效率较高。

7、ArrayList源码分析

①ArrayList中维护了一个Object类型的数组elementData.   transient Object[] elementData; 

transient表示这个属性不会被序列化。

②当创建ArrayList对象时,如果使用无参构造器,则elementData初始容量为0,第一次添加,扩容elementData为10,如需再次扩容,则为原来的1.5倍。

③如果是指定大小的构造器,则初始为指定大小,如需扩容,直接为原来的1.5倍。

新建elementData--插入前调用方法(ensureCapacityInternal)检查容量是否充足,不足扩容--data[size++]

举报

相关推荐

0 条评论