第17天 Set接口 Queue接口

Set接口

不能包含重复的元素
无序:不会按照我们添加的规则输出,有底层规定的顺序输出
与数组无关

Set接口

包含HashSet,TreeSet。HashSet中包含LinkedHashSet
不能包含重复元素,有顺序

treeset输出时会自动排序,默认升序

TreeSet
//放入TreeSet中的Student类要实现Comparable接口

{
Set<Student> set = new TreeSet<>();
set.add(new Student("asd",40,95));
set.add(new Student("ijf",40,95));
set.add(new Student("kop",40,95));
set.add(new Student("jio",40,95));
set.forEach(System.out::println);
}

class Student implements Comparable<Student>{
private String name;
private int age;
private int score;

public Student(String name, int age, int score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }

}

# 用Set如何去重?
将list添加到set中
```java
Set<String> set = new HashSet<>();
set.addAll(list);
sout(set);


Set 的实现类HashSet

  1. 元素不能重复
  2. 元素位置可能发生改变
  3. 无序
  4. 线程不安全
  5. 底层是哈希表
  6. 指定的初始化容量必须是2的n次方的形式
HashSeet<String> set = new HashSet<>();
set.add("wenrenhao");

set.forEach(System.out::println);

LinkedHashSet

LinkedHashSet是HashSet的子类。不能放重复元素

自身特点:
是有序的集合
底层数据结构:哈希表和双向链表
线程不安全的集合

Queue接口

FIFO :先进先出


Queue queue = new LinkedList();
queue.add(" ");

//获取但不移除头部元素
//NoSuchElementException 如果没有数据,抛出异常
sout(queue.element());

//获取但不移除头部元素
//如果没有数据,返回null
sout(queue.peek());

//获取并移除头部元素,没有数据返回null
sout(queue.poll());


//获取并移除头部元素,没有数据返回NoSuchElementException
sout(queue.remove());

//在数组末尾添加元素
queue.offer("pubg")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值