您的位置:首页 > 编程语言 > Java开发

java基础知识(容器)-01

2018-04-03 19:53 405 查看

一:各个集合类之间的关系




二:个人总结





  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()); //外部比较器:通过实现Comparat
4000
or接口
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;
}

}

截图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: