泛型
泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
例如:Test<Object> t = new Test<Object>()
;,指明泛型T的类型为Object。
举个栗子
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class LinkedList1 {
public static void main(String[] args) {
//泛型
List <Integer> list = new LinkedList<Integer>();
list.add(11);
list.add(52);
list.add(34);
list.add(90);
list.add(45);
list.add(29);
//增强for循环
System.out.println(" ");
for(Integer q : list) {
System.out.print(q+" ");
}
//迭代器循环
System.out.println(" ");
Iterator iterator = list.iterator();//声明一个迭代器
while(iterator.hasNext()){//iterator.hasNext()判断下一位还有没有值 有就接着循环
Integer obj = (Integer)iterator.next();
System.out.print(obj+" ");
}
System.out.println(" ");
}
}
LinkedList的四中排序方式
第一种:
利用Comparator – 比较器
要导入import java.util.Comparator;
语法:集合名字.sort(Comparator)
eg:
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
public class LinkedList1 {
public static void main(String[] args) {
//泛型
List <Integer> list = new LinkedList<Integer>();
list.add(11);
list.add(52);
list.add(34);
list.add(90);
list.add(45);
list.add(29);
System.out.println("第一种排序,集合.sort");
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer arg0, Integer arg1) {
// TODO Auto-generated method stub
return arg0-arg1;
/**
* arg0-arg1升序
* arg1-arg0降序
*/
}
});
System.out.println(list);
}
}
结果:
第一种排序,集合.sort
[11, 29, 34, 45, 52, 90]
arg0-arg1对应的是升序排序
arg1-arg0对应的是降序排序
@Override
public int compare(Integer arg0, Integer arg1) {
// TODO Auto-generated method stub
return arg0-arg1;//升序
第二种:
要导入import java.util.Collections;
利用工具排序
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class LinkedList1 {
public static void main(String[] args) {
//泛型
List <Integer> list = new LinkedList<Integer>();
list.add(11);
list.add(52);
list.add(34);
list.add(90);
list.add(45);
list.add(29);
System.out.println("第二种工具类排序");
Collections.sort(list);
System.out.println(list);
}
}
结果:
第二种工具类排序
[11, 29, 34, 45, 52, 90]
第三种:
System.out.println(" 第三种 ");
Collections.sort(list, new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return o2-o1;
}
});
System.out.println(list);
}
}
结果:
第三种
[90, 52, 45, 34, 29, 11]
第四种:(自定义排序)
要先创建一个自定义排序的类
package opp8;
import java.util.Comparator;
//自定义比较器
public class MyComparator implements Comparator<Integer>{
//降序
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return o2-o1;
}
}
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class LinkedList1 {
public static void main(String[] args) {
//泛型
List <Integer> list = new LinkedList<Integer>();
list.add(11);
list.add(52);
list.add(34);
list.add(90);
list.add(45);
list.add(29);
/**
* 第四种自定义排序
*/
System.out.println(" ");
Collections.sort(list, new MyComparator());
System.out.println(list);
}
}