package test4;
import org.junit.Test;
import test2.Person;
import java.util.*;
import static java.util.Collections.frequency;
/**
* 〈一句话功能简述〉<br>
* 〈〉
*
* @author abu
* @create 2019/7/24
* @since 1.0.0
*/
public class TestCollections {
@Test
public void test3(){
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(9);
list.add(9);
list.add(4);
list.add(3);
List list1 = new ArrayList();
list1.add(33);
list1.add(5);
list1.add(99);
list1.add(3);
//某元素出现的次数
int i = frequency(list, 9);
System.out.println(i);
//将list中元素加入list2,list2长度要够长才能执行
List list2 = Arrays.asList(new Object[list.size()]);
Collections.copy(list2,list);
System.out.println(list2 + "is list2");
//使list是线程安全的
List list3 = Collections.synchronizedList(list);
System.out.println(list3);
//元素替换
Collections.replaceAll(list1,33,8);
System.out.println(list1);
}
@Test
public void test2(){
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(9);
list.add(4);
list.add(3);
System.out.println(list);
//根据元素自然顺序返回最大\小值
System.out.println(Collections.max(list));
System.out.println(Collections.min(list));
List list1 = new ArrayList();
list1.add(new Employee1("angle",18,new MyDate1(1989,01,03)));
list1.add(new Employee1("aabcc",18,new MyDate1(1989,01,03)));
list1.add(new Employee1("bank",34,new MyDate1(1999,02,05)));
list1.add(new Employee1("tarry",12,new MyDate1(1979,02,21)));
list1.add(new Employee1("echo",67,new MyDate1(1939,11,13)));
Comparator com = new Comparator() {
@Override
public int compare(Object o1, Object o2) {
if(o1 instanceof Employee1 && o2 instanceof Employee1){
Employee1 e1 = (Employee1)o1;
Employee1 e2 = (Employee1)o2;
MyDate1 birth1 = e1.getBirthday();
MyDate1 birth2 = e2.getBirthday();
if(birth1.getYear() != birth2.getYear()){
return birth1.getYear() - birth2.getYear();
}else if(birth1.getMonth() != birth2.getMonth()){
return birth1.getMonth() - birth2.getMonth();
}else if(birth1.getDay() != birth2.getDay()){
return birth1.getDay() - birth2.getDay();
}else{
return e1.getName().compareTo(e2.getName());
}
}
return 0;
}
};
//根据Comparator定义的顺序排序,返回给定集合中元素的最大、小值
Collections.sort(list1,com);
System.out.println(list1);
System.out.println(Collections.max(list1,com));
System.out.println(Collections.min(list1,com));
}
@Test
public void test1(){
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(9);
list.add(4);
list.add(3);
System.out.println(list);
//反转
Collections.reverse(list);
System.out.println(list);
//随鸡排序
Collections.shuffle(list);
System.out.println(list);
//指定list中i和j处的元素调换
Collections.swap(list,3,4);
System.out.println(list);
//按元素自然顺序升序排序
Collections.sort(list);
System.out.println(list);
//根据指定Comparator产生的顺序对list排序
List list1 = new ArrayList();
list1.add(new Person("angle",15));
list1.add(new Person("cool",17));
list1.add(new Person("david",56));
list1.add(new Person("eden",90));
list1.add(new Person("sun",2));
Comparator com = new Comparator(){
@Override
public int compare(Object o1, Object o2) {
if(o1 instanceof Person && o2 instanceof Person){
Person p1 = (Person)o1;
Person p2 = (Person)o2;
int i = p1.getAge() - p2.getAge();
if(i == 0){
return p1.getName().compareTo(p2.getName());
}
return i;
}
return 0;
}
};
Collections.sort(list1,com);
System.out.println(list1);
}
}
07-17
07-17
07-17
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交