Array数组
普通数组是基本类型,例如int[] 就像是;一个装着元素排列整齐的盒子,他没有size(),length()等方法,但是存在length属性。
- Array.sort()
这是专门排序数组的方法,但是前提是你必须给数组存储的元素继承并定义comparable方法,或者可以使用自定义比较器,如Arrays.sort(arr,new comparator());
List
ArrayList是动态数组的实现类,达到0.75会自动扩容。
1.add
add(E element)
将指定的元素添加尾部。
add(int index,E element)
将指定元素添加到指定位置
2.remove
remove(int index)
移除指定位置的元素
remove(object o)
移除第一个匹配项
3.get(int index)
返回指定位置的元素
4.indexOf(object o)
返回第一个匹配的索引,如果没有则返回-1
5.set(int index,objct o)
将指定位置元素替换为指定元素
6.size()
返回大小
7.isEmpty()
返回是否为空
8.toArray()
返回包含表里所有元素的数组
Map
HashMap<object,object>
映射关系表,理论查询时间复杂度是P(1)
- containsKey(object o)
返回是否包含该键 - put(object o1,object o2)
向该map添加键值对 - get(object o)
查看该键的值,如果没有,则null
treeMap<object,object>
含有键值对的map,其已排序
TreeMap中的键必须实现Comparable接口,或者提供一个Comparator对象来定义键的排序规则,否则会抛出NullPointerException。
TreeMap是非同步的,如果需要线程安全,可以使用Collections.synchronizedSortedMap()方法。
TreeMap的底层实现是红黑树,因此插入、删除、查找等操作的时间复杂度为O(log n)。
使用默认构造函数:
TreeMap<KeyType, ValueType> map = new TreeMap<>();
此时,TreeMap中的元素将按照键的自然顺序(即键必须实现Comparable接口)进行排序。
通过传入一个Comparator对象,可以自定义键的排序规则。
使用带有比较器的构造函数:
TreeMap<KeyType, ValueType> map = new TreeMap<>(Comparator<KeyType> comparator);
- put get size方法同HashMap
- remove(object o)
移除指定元素 - clear()
清空一切 - floorKey(object o)
找到小于等于o最接近的元素,比较规则取决于指定的比较器 - ceilingKey(object o)
找到大于等于o最接近的元素
Set
TreeSet
TreeSet 是 Java 中 java.util 包中的一个类,它实现了 NavigableSet 接口,并且基于红黑树(Red-Black Tree)数据结构来存储元素。TreeSet 保证了元素的唯一性和自然排序(或者根据提供的比较器进行排序)。以下是一些常用的 TreeSet 方法:
TreeSet不可以包含多个值相同的元素
构造器:
TreeSet(Comparator<? super E> comparator)
创建一个空的 TreeSet,使用指定的比较器对元素进行排序。
- boolean add(E e)
将指定的元素添加到集合中(如果该元素尚未存在于集合中)。 - void clear()
移除集合中的所有元素。 - Object first()
返回集合中的第一个(最低)元素。 - Object last()
返回集合中的最后一个(最高)元素。 - boolean contains(Object o)
检查集合中是否包含指定的元素。 - boolean isEmpty()
检查集合是否为空。 - boolean remove(Object o)
从集合中移除指定的元素(如果该元素存在)。 - int size()
返回集合中的元素数量。 - E floor(E e)
返回小于或等于指定元素的最大元素。 - E ceiling(E e)
返回大于或等于指定元素的最小元素。 - E pollFirst()
获取并移除集合中的第一个(最低)元素;如果集合为空,则返回 null。 - E pollLast()
获取并移除集合中的最后一个(最高)元素;如果集合为空,则返回 null。