biji.jpg

Collection 集合

list接口

List 接口继承自 Collection 接口,是单列集合。


list接口特点:

  • 元素存取有序的集合

  • 带有索引的集合

  • 集合中可以有重复的元素

ArrayList集合

ArrayList是List的子类。

特点:元素增删慢,查找快。

// 判断某元素值是否存在
list.contains(val);
list.indexof(val);
// 数组转list
Arrays.asList(arr);
Arrays.asList(strArray);
//list转数组
String[] s = list.toArray(new String[list.size()]);

LinkedList集合

LinkedList是一个双向链表,方便元素的添加、删除。

提供了大量的首尾操作的方法:

  • addFirst(E e) :将指定元素插入此列表的开头。

  • addLast(E e) :将指定元素添加到此列表的结尾。

  • getFirst() :返回此列表的第一个元素。

  • getLast() :返回此列表的最后一个元素。

  • removeFirst() :移除并返回此列表的第一个元素。

  • removeLast() :移除并返回此列表的最后一个元素。

  • pop() :从此列表所表示的堆栈处弹出一个元素。

  • push(E e) :将元素推入此列表所表示的堆栈。

  • isEmpty() :如果列表不包含元素,则返回true。

Set接口

set接口继承自Collection接口,set比Collection接口更加严格。

set接口特点:

  • 元素无序(TreeSet)

  • 元素不重复(hashCode、equals)

HashSet集合

HashSet 是 Set 接口的一个实现类,元素是不可重复的,并且元素都是无序的(即存取无序)。 

根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。自定义数据类型需要重写对象中的hashCode和equals方法。

数据结构(哈希表)

bijix.png

LinkedHashSet集合

LinkedHashSet 是HashSet 的子类,元素唯一,存取有序

TreeSet集合

TreeSet也是 Set 接口的一个实现类,对元素进行排序,同样它也可以保证元素的唯一。

Queue队列

PriorityQueue

java优先队列,每次pop()总是输出一个按照指定规则的的元素(默认是取出最小的)。但是队列内部,并不是有序的。

//定义
PriorityQueue<Integer> list = new PriorityQueue<Integer>();

//增加元素
list.add(int)
list.offer(int);

//获取队首元素,但不删除
list.element();
list.peek();

//获取队首元素,且删除
list.remove();
list.poll();

Collections工具类

Collections是集合的工具类,用来对集合进行操作。

  • addAll(Collection<T> c, T... elements) :往集合中添加一些元素。

  • shuffle(List<?> list) 打乱顺序。

  • sort(List<T> list) :将集合中元素按照默认规则排序。

  • sort(List<T> list,Comparator<? super T> ) :将集合中元素按照指定规则排

Collections.addAll(list, 5, 222, 1,2);
System.out.println(list);
//排序方法
Collections.sort(list);
System.out.println(list);//结果[1, 2, 5, 222]

Comparator接口

//创建学生类、学生对象进行排序
Collections.sort(list, new Comparator<Student>() {
    @Override
    public int compare(Student o1, Student o2) {
        return o2.getAge()‐o1.getAge();//以学生的年龄降序
    }
});

Comparable接口

//创建学生类、学生对象进行排序
public class Student implements Comparable<Student>{
....
    @Override
    public int compareTo(Student o) {
        return this.age‐o.age;//升序
    }
}



最后修改:2019 年 06 月 09 日 08 : 13 PM
如果觉得我的文章对你有用,请随意赞赏