复习Java基础3
- Collection Java中所有的集合总接口
–|List 有序 可重复
----|ArrayList
----|LinjedList
----|Vector
–|Set无序 不可重复
----|HashSet
----|TreeSet
-
Collection下的常用方法:
增:
boolean add(E e);
addAll(Collection<? extends E> c);
删:
remove(Object o);
removeAll(Collection<?> c);
retainAll(Collection<?> c);
clear();
查:
boolean isEmpty(); // return 0 == size;
boolean contains(Object o);
boolean containsAll(Collection<?> c);
int size();
Object[ ] toArray();
迭代器:
Iterator iterator();
boolean hasNext();
Object next();
void remove();
4.List接口下的常用方法:
增:
add(int index,E e);
addAll(int index, list<? extends E> c);
删:
remove(int index);
改:
E set(int index,E e);
查:
E get(int index);
List subList(int start,int end);
int indexOf(Object o);
int lastIndexOf(Object o);
迭代器:
ListIterator listIterator();
void set(E e);
void add(E e);
int nextIndex();
void remove();
-
ArrayList的特征:
增删慢:(1) 增加可能触发grow方法,在grow方法中,数据拷贝非常浪费时间。
(2) 增加有可能会影响到原本底层数组的结构,会导致从插入数据的位置开始,数组中的元素整体右移。
(3) 删除是可能导致数组中的元素从删除位置开始整体左移。
查找快:(1) 这里操作的形式完全可以按照数组下标操作来完成,而数组和下标的组合对于CPU来说是一个明确的内存地址。
6.存放到TreeSet的元素有什么要求,如何让自定义元素存放到TreeSet集合中
要求:
(1) 数据类型一致化
(2) 数据存在自然顺序或者比较规则。
自定义对象,存放到TreeSet中
(1) 自定义类遵从Comparable 实现int comparTo(T o)
(2) 自定义比较器遵从Comparator 实现 int compare(T o1, T o2);
-
-
equals方法和hashcode方法
equals是比较两个对象是否相同,该方法是Object类内方法,在Java中所有的类都可以使用,默认的比较方法是比较两个对象空间的首地址是否相同。
一般情况下业务逻辑重写equals方法,满足当前类对象自定义的比较方式,例如String类。