Java List 操作

Java List

  1. 对元素是基本数据类型的List排序     参考 对List集合中的元素进行排序   java对list进行排序
  2. 对 元素是复杂实体类的List排序       
  3. List转为String
  4. String转为List
  5. List 和 Set 互转    参考  Set与List之间转化
  6. Array和List互转   参考Java中List转换为数组,数组转ListArrayList深度分析(四):ArrayList和数组间的相互转换
  7. List<Long> 判断包含

定义实体类Student,实现Comparable接口,实现接口的compareTo()方法

public class Student implements Comparable<Student> {

	private String name;
	private Integer age;
	public Student(String name, Integer age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}

	@Override
	public int compareTo(Student o) {
		int i = this.getName().compareTo(o.getName());
		if (i == 0) {
			i = this.getAge().compareTo(o.getAge());
		}

		return i;
		// sort desc 降序排列
		// if (i == -1)
		// return 1;
		// if(i == 1)
		// return -1;
		// else {
		// return 0;
		// }
	}

}

  

具体实现方法

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;

public class ListSortTest {

	public static void main(String[] args) {

		// 对元素是基本数据类型的List排序
		listSortSimple();

		// 对 元素是复杂实体类的List排序
		listSortEntity();

		// List转为String
		list2String();

		// String转为List
		string2List();

		// List 和 Set 互转
		listAndSetConvert();

		// Array转List
		array2List();
	}

	// 对元素是基本数据类型的List排序
	public static void listSortSimple() {
		List<String> nameList = new ArrayList<>();
		nameList.add("serina");
		nameList.add("blair");
		nameList.add("calorin");
		for (String name : nameList) {
			System.out.println("before name = " + name);
		}

		// 使用Java中提供的对集合进行操作的工具类Collections,其中的sort方法
		Collections.sort(nameList);
		for (String name : nameList) {
			System.out.println("after name = " + name);
		}
	}

	// 对 元素是复杂实体类的List排序
	public static void listSortEntity() {

		List<Student> students = new ArrayList<>();
		students.add(new Student("serina", 13));
		students.add(new Student("serina", 10));
		students.add(new Student("blair", 15));
		students.add(new Student("calorin", 16));
		students.add(new Student("calorin", 12));

		for (Student student : students) {
			System.out.println("before student name = " + student.getName() + " age = " + student.getAge());
		}
		Collections.sort(students); // 排序
		for (Student student : students) {
			System.out.println("after student name = " + student.getName() + " age = " + student.getAge());
		}
	}

	public static void list2String() {

		// data
		List<String> nameList = new ArrayList<String>();
		nameList.add("Joyce");
		nameList.add("Eco");
		nameList.add("Chole");
		String name = "";

		// convert
		if (!CollectionUtils.isEmpty(nameList)) {
			name = String.join(",", nameList);
		}
		// result
		System.out.println("name = " + name);
	}

	public static void string2List() {

		// data
		String name = "Joyce,Eco,Chole";
		List<String> nameList = new ArrayList<String>();

		// convert
		if (StringUtils.hasText(name)) {
			nameList.addAll(Arrays.asList(name.split(",")));

		}

		// result
		System.out.println("nameList  " + nameList);

	}

	public static void listAndSetConvert() {
		List<String> nameList = new ArrayList<String>();
		Set<String> nameSet = new HashSet<>();
		nameList.add("blair");
		nameList.add("serina");
		nameList.add("dan");
		nameList.add("dan");
		System.out.println("------------------------------nameList==" + nameList.toString());

		// convert list to set之后会丢失数据,并且会丢失原来的顺序
		// convert list to set
		nameSet = new HashSet<>(nameList);
		System.out.println("------------------------------nameSet==" + nameSet.toString());

		// convert set to list
		nameList.clear();
		nameList.addAll(nameSet);
		System.out.println("------------------------------nameList==" + nameList.toString());

	}

	public static void array2List() {

		String[] names = { "anna", "holy", "selly" };

		// 方法2: ok
		List<String> nameList2 = new ArrayList<>();
		nameList2.addAll(Arrays.asList(names));
		nameList2.clear();
		nameList2.add("serina2");
		for (String name : nameList2) {
			System.out.println("name===" + name);
		}

		// 方法1: throw errors: java.lang.UnsupportedOperationException
		// 直接 Arrays.asList() new 的list不能执行 clear(),add()等操作
		List<String> nameList = Arrays.asList(names);
		nameList.clear();
		nameList.add("serina");
		for (String name : nameList) {
			System.out.println("name===" + name);
		}

	}

	public void list2Array() {

		ArrayList<String> list = new ArrayList<String>();

		String[] strings = new String[list.size()];

		list.toArray(strings);
	}
}

  

判断包含

    public static void main(String[] args) {
        List<Long> ids= new ArrayList<Long>();
        ids.add((long) 3);
        ids.add((long) 6);
        ids.add((long) 9);
        
        Integer value = 3;       
        Long vaule2 = (long) 6;
        
        if(ids.contains(value.longValue())) {
            System.out.println("contains 3");
        }
        
        if(ids.contains(vaule2.longValue())) {
            System.out.println("contains 6");
        }
    }

 

posted on 2022-03-03 16:59  dreamstar  阅读(201)  评论(0编辑  收藏  举报