public class ListUtils {
/**
* 对List<Student>型list进行排序
* @param listStudent
* @return
*/
public void sortStudent(List<Student> listStudent){
//参考Collections.sort(listStudent);
Collections.sort(listStudent, new Comparator<Student>() {
public int compare(Student s1,Student s2){
return s1.getAge()-s2.getAge();
//return s1.getName().compareTo(s2.getName());
}
});
}
public static void main(String[] args) {
Student s1 = new Student("小明", 11);
Student s2 = new Student("小红", 10);
Student s3 = new Student("小王", 13);
List<Student> list1 = new ArrayList<Student>();
list1.add(s1);
list1.add(s2);
list1.add(s3);
ListUtils listUtils = new ListUtils();
listUtils.sortStudent(list1);
for (int i = 0; i < list1.size(); i++) {
System.out.println("name:"+list1.get(i).getName()+"age:"+list1.get(i).getAge());
}
}
}
- 2 为什么是List list=new ArrayList()?
首先它属于面向接口编程,可以降低程序的耦合性,容易修改。比如想要接收LinkedList数据时,只需让list=new LinkedList()。其次,List中的方法已经基本足够使用。
- 3 list交集
作用:取两个list中相同的。
比较:基本数据类型比值,对象比地址。
List<Student> list2 = new ArrayList<Student>();
list2.add(s1);
list2.add(s5);
list2.add(s6);
System.out.println(list2.size());//3
list2.retainAll(list1);
System.out.println(list2.size());//1
for (int i = 0; i < list2.size(); i++) {
//name:小明age:11
System.out.println("name:"+list2.get(i).getName()+"age:"+list2.get(i).getAge());
}
- 4 为什么判断list的时候,既要判断不等于null有要判断size大于0
原因