一:各個集合類之間的關係
二:個人總結
三
3.1 迭代器:
package com.vvut;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("a");
list.add("c");
// 返回一個迭代器對象
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next()+"");
}
}
}
截圖
3.2 :比較器:
package com.vvut;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
*
* StringList{"hello1" , "hello3" , "hello2"}, Collections.sort( stringList ) 能夠得到正確的排序, 那是因爲
String 這個對象已經幫我們實現了 Comparable接口 , 所以我們的 Person 如果想排序, 也要實現一個比較器。
*
*/
public class Test {
public static void main(String[] args) {
List<Student> list=new ArrayList<Student>(10);
list.add(new Student(1,"飛"));
list.add(new Student(0,"阿里"));
list.add(new Student(0,"京東"));
list.add(new Student(2,"美團"));
Collections.sort(list); //內部比較器:要排序的對象實現Comparable接口,可以對自身進行比較
System.out.println(list);
List<Teacher> t=new ArrayList<Teacher>(10);
t.add(new Teacher(1,12));
t.add(new Teacher(0,13));
t.add(new Teacher(0,14));
t.add(new Teacher(2,15));
Collections.sort(t,new StudentComparator()); //外部比較器:通過實現Comparator接口
System.out.println(t);
}
}
class Student implements Comparable {
int num;
String name;
public Student(int num, String name) {
this.num = num;
this.name = name;
}
@Override
public String toString() {
return "\r\tnum:"+num+" name:"+name+"\r";
}
/**
* 實現的抽象方法,返回值大於0表示對象大於參數對象;
* 小於0表示對象小於參數對象;等於0表示兩者相等
* 從大到小排序
*/
public int compareTo(Object o) {
Student tmp=(Student) o;
int result=tmp.num<num?1:(tmp.num==num?0:-1);
//比較姓名的ACDI碼
if (result==0) {
result=tmp.name.indexOf(0)>name.indexOf(0)?1:-1;
}
return result;
}
}
class Teacher{
int num;
double salary;
public Teacher(int num, double salary) {
this.num = num;
this.salary = salary;
}
@Override
public String toString() {
return "\r\tnum:"+num+" salary:"+salary+"\r";
}
}
/**
*它的實現者被稱爲比較器
*
*/
class StudentComparator implements Comparator{
public int compare(Object o1, Object o2) {
Teacher t1=(Teacher) o1;
Teacher t2=(Teacher) o2;
int result=t1.num>t2.num?1:(t1.num==t2.num?0:-1);
//result相等比較薪水
return result=result==0?(t1.salary<t2.salary?1:-1):result;
}
}
截圖