Java基础3-集合类
集合类
集合类继承关系
Java.lang.Object
Map
HashMap
TreeMap
Collection
Set
HasshSet
TreeSet
List
ArrayList
LinkedList
Collection接口
Collection接口常用方法
add(E e):添加对象到集合
remove(Object o):删除集合中指定对象
isEmpty():返回boolean判断集合是否为空
iterator():返回迭代器
size():获取集合个数
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class MyCollection {
public static void main(String[] args) {
Collection<String> collection = new ArrayList<>();
collection.add("a");
collection.add("b");
collection.add("c");
collection.remove("b");
Iterator<String> it = collection.iterator();
while (it.hasNext()){
String str = (String)it.next();
System.out.println(str);
}
}
}
List集合
List集合元素顺序为插入顺序,元素允许重复。
List接口重要方法:get(int index);set(int index, Object obj)
List接口的常用实现类ArrayList和LinkedList
ArrayList实现了可变的数组,允许保存所有的元素,包括null,可以根据索引位置快速随机访问。缺点是向指定位置插入或删除慢
LinkedList采用链表结构保存对象。插入和删除效率高,随机访问效率低。
Set集合
Set集合为无序集合,元素不能重复。
常用实现类有:HashSet和TreeSet
HashSet类实现Set接口,由哈希表支持,不保证迭代顺序,元素可以为null。(由HashMap实例实现)
TreeSet类实现Set接口,还实现了java.lang.SortedSet接口。按自然顺序排序或指定比较器排序。
TreeSet
常用方法:first()、last()、comparator()、headSet(E toElement)、subSet(E fromElement,E toElement)、tailSet(E fromElement)
在向TreeSet中添加自定义类型的对象时,可以自然排序:自定义类必须实现Comparable接口;
也可以自定义排序:
- 创建一个实现了Comparator接口类的对象
- 向TreeSet中添加Student类的对象,在此compare()方法中,指明是按照Customer的哪个属性进行排序的
- 将此对象作为形参传递给TreeSet的构造器中
- 向TreeSet中添加Comparator接口中的compare方法中涉及的类的对象。
不管是自然排序还是定制排序,都要在自定义类中重写hashCode()和equips()方法
重写案例https://blog.csdn.net/u012557538/article/details/89861552
Map集合
与Collection集合不同,Map集合存放的是键值对的映射。Map中不能包含相同key,但可以包含相同value,每个key只能映射一个value。
Map常用方法:
put(K key,V value)添加
containsKey(Object key)返回boolean
containsValue(Objcect value)
get(Object key)返回value或null
keySet()返回该集合中所有key组成的Set集合
values()返回该集合中所有value组成的Collection集合
同理Set,Map接口实现类有HashMap和TreeMap。HashMap便于增删改查,TreeMap中的映射具有顺序。
可以通过HashMap创建Map集合,当需要顺序输出时再创建一个TreeMap
数组
java.util.Arrays
- Arrays.fill(array,value):使用同一个值填充数组
- Arrays.sort(array):排序,默认升序;亦可通过Arrays.sort(array,comparator),第二个参数需要自定义比较器实现Comparator接口
- Arrays.copyOf(array,newLength):复制指定长度的数组
- Arrays.binarySearch(array,key):二分查找,Arrays.binarySearch(array,fromIndex,toIndex,key)

浙公网安备 33010602011771号