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接口;
也可以自定义排序:

  1. 创建一个实现了Comparator接口类的对象
  2. 向TreeSet中添加Student类的对象,在此compare()方法中,指明是按照Customer的哪个属性进行排序的
  3. 将此对象作为形参传递给TreeSet的构造器中
  4. 向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)
posted @ 2021-01-05 10:49  tanjr  阅读(81)  评论(0)    收藏  举报