List相关技巧

  • 1 List<T>按其中某个字段排序
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
    原因

猜你喜欢

转载自blog.csdn.net/moqianmoqian/article/details/109848106