上午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点
每日总结