2021-7-14学习总结

上午9点~中午12点

学习Java,Java疯狂讲义294~306页
1,主要学习了Java中的集合,Collection接口和Iterator接口
一些常用的方法:

boolean add(Object)
Iterator iterator     主要用于返回一个iterator对象,用于遍历集合的元素
.......

2,使用Lambda表达式遍历集合
3,使用Iterator遍历集合

boolean hasNext()  如果被迭代的集合还没迭代完,返回true
Object next()      返回集合里的下一个元素
void remove()     删除集合里上一次next方法返回的元素

4,使用Lambda表达式遍历Iterator
5,Set集合:不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作失败,add方法返回false,且新元素不会被加入。
6,HashSet类,LinkedHashSet类,两者都是根据元素的hashcode来决定元素的储存位置的,后者同时使用链表维护元素的次序

下午2点15~下午5点30

学习Java,温故知新,写Java学习笔记
笔记链接

晚上6点~9点20

学习Java,Java疯狂讲义306~317
1,TreeSet类,是SortedSet接口的实现类

Object first()    返回集合中第一个元素
Object last()     返回集合中最后一个元素
SortedSort subSet(Object fromElement,Object toElement)   返回此Set的子集,范围从 fromElement到 toElement
SortedSort headSet(Object toElement)                     返回此Set的子集,由小于toElement的元素组成
SortedSort tailSet(Object fromElement)                   返回此Set的子集,由大于或等于toElement的元素组成

2,自然排序,compareTo(Object obj)来比较元素之间的大小问题
3,Comparable接口

练习

LinkedHashSet:

import java.util.Collection;
import java.util.LinkedHashSet;

public class LinkedHashSetTest {
    public static void main(String[] args) {
        Collection<String> str = new LinkedHashSet<>();
        str.add("c");
        str.add("s");
        System.out.println(str);
        str.remove("c");
        System.out.println(str);
    }
}

TreeSet:重写ToString,equals,compareTo.

public class R implements Comparable {
    public int count;
    public R(int count){
        this.count = count;
    }
    public  String toString(){
        return "R[count:" + count + "]";
    }
    public boolean equals(Object obj){
        if(this == obj){
            return true;
        }
        if(obj != null && R.class == obj.getClass()){
            R r = (R)obj;
            return r.count == this.count;
        }
        return false;
    }

    @Override
    public int compareTo(Object o) {
        R r = (R)o;
        return this.count > r.count ? 1 : this.count < r.count ? -1 : 0;
    }
}

import java.util.Iterator;
import java.util.TreeSet;

public class TreeSetTest3 {
    public static void main(String[] args) {
        TreeSet<R> tr = new TreeSet<>();
        tr.add(new R(2));
        tr.add(new R(3));
        tr.add(new R(1));
        tr.add(new R(5));
        tr.add(new R(4));
        Iterator iter = tr.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next());
        }
        R first = (R)tr.first();
        System.out.println(first);
    }
}

利用Lambda表达式,完成定制排序:

public class M {
    public int age;
    public M(int age){
        this.age = age;
    }
    public String toString(){
        return "M [age:" + age + "]";
    }
}

import java.util.Iterator;
import java.util.TreeSet;

public class MTest {
    public static void main(String[] args) {
        TreeSet<M> tr = new TreeSet<>((o1, o2) ->{
            M m1 = (M)o1;
            M m2 = (M)o2;
            return m1.age > m2.age ? -1 : m1.age < m2.age ? 1 : 0;
        } );
        tr.add(new M(3));
        tr.add(new M(4));
        tr.add(new M(1));
        tr.add(new M(2));
        Iterator iter = tr.iterator();
        while(iter.hasNext()){
            System.out.println(iter.next());
        }
        System.out.println();
        System.out.println(tr.lower(new M(3)));
    }
}

9点20~10点

每日总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值