Collections工具类
调用Collections类里的sort方法,可进行排序 package eight.collections; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; public class Demo01 { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>();//有序但无排序 list.add(342); list.add(38); list.add(4355555); list.add(685); System.out.println(list); Collections.sort(list);//调用Collections类里的sort方法,可进行排序 //注意:使用sort方法实现排序,集合元素必须实现Comparable接口(自定义的类需要手动实现) System.out.println(list); } }
模拟抽取幸运用户,奖池中包含1-16的数字,通过打乱数字顺序,抽取第7个位置的数字,作为幸运用户。
package eight.collections; import java.util.ArrayList; import java.util.Collections; public class Demo02 { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); for (int i = 0; i <=16; i++) { list.add(i); } System.out.println(list); Collections.shuffle(list); System.out.println(list.get(6)); } }
使用binarySearch方法实现查找元素的下标
package eight.collections;
import java.util.ArrayList;
import java.util.Collections;
public class Demo03 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);//0
list.add(5);//1
list.add(7);//2
list.add(11);//3
list.add(15);//4
System.out.println(Collections.binarySearch(list,15));
}/*被查找的列表中,列表元素必须按照升序排序
返回值:包含查找对象,返回对象第一次出现的下标
不包含查找对象,则返回-(最近插入点+1)
如果列表中的所有元素都小于指定的键,则返回 list.size()*/
}
package eight.collections; import java.util.ArrayList; import java.util.Collections; public class StudentTest { public static void main(String[] args) { Student s1 = new Student("杨幂",37); Student s2 = new Student("周也",27); Student s3 = new Student("成龙",70); Student s4 = new Student("王源",25); ArrayList<Student> al = new ArrayList<>(); al.add(s1); al.add(s2); al.add(s3); al.add(s4); //调用Collections类里的sort方法,可进行排序 Collections.sort(al); System.out.println(al); //注意:使用sort方法实现排序,集合元素必须实现Comparable接口(自定义的类需要手动实现) //调用Collections类里的reverse方法,可进行反转 Collections.reverse(al); System.out.println(al); //随机 Collections.shuffle(al); System.out.println(al); } }
max获取最大元素,min获取最小元素
package eight.collections2; import java.util.ArrayList; import java.util.Collections; public class Test { public static void main(String[] args) { Student s1 = new Student("秦岚", 40); Student s2 = new Student("辛芷蕾", 35); Student s3 = new Student("赵昭仪", 26); ArrayList<Student> l = new ArrayList<>(); l.add(s1); l.add(s2); l.add(s3); System.out.println(l); //排序 Collections.sort(l); System.out.println(l); //调用binarySearch()时,将指定学生的对象作为参数传递 System.out.println(Collections.binarySearch(l,s1)); //max获取最大元素 System.out.println(Collections.max(l)); //min获取最小元素 System.out.println(Collections.min(l)); } }
package eight.collections2; public class Student implements Comparable<Student>{ @Override public int compareTo(Student o) { return this.Score-o.Score; } private String name; private int Score; public Student() { } public Student(String name, int score) { this.name = name; Score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", Score=" + Score + '}'; } }
查找子列表第一次出现的起始位置,没有则返回-1
查找子列表最后一次出现的位置,没有则返回-1
package eight.collections2; import java.util.ArrayList; import java.util.Collections; public class Demo01 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); ArrayList<String> list2 = new ArrayList<>(); list.add("a"); list.add("b"); list.add("b"); list.add("c"); list.add("d"); list2.add("b"); //查找子列表第一次出现的起始位置,没有则返回-1 System.out.println(Collections.indexOfSubList(list,list2)); //查找子列表最后一次出现的位置,没有则返回-1 System.out.println(Collections.lastIndexOfSubList(list,list2)); } }
实现斗地主 package eight.collections2; import java.util.ArrayList; import java.util.Collections; //实现斗地主 public class Demo02 { public static void main(String[] args) { String[] p = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; String[] c = {"♥","♦","♣","♠"}; ArrayList<String> list = new ArrayList<String>(); //使用foreach 拼接 for (String s1 : p){ for (String s2 : c){ list.add(s2+s1);//加号拼接字符串 } } //添加大王小王 list.add("大王"); list.add("小王"); //洗牌 Collections.shuffle(list); //发牌 ArrayList<String> longlong = new ArrayList<>(); ArrayList<String> kunkun = new ArrayList<>(); ArrayList<String> xinxin = new ArrayList<>(); ArrayList<String> dp = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { if (i>= list.size()-3){//如果i>=54,-3 51 dp.add(list.get(i));//获取3张牌 }else if (i%3==0){//模余3=0给龙龙 longlong.add(list.get(i)); }else if (i%3==1) {//模余3=1给坤坤 kunkun.add(list.get(i)); }else{//其余给欣欣 xinxin.add(list.get(i)); } } System.out.println(dp); System.out.println(longlong); System.out.println(kunkun); System.out.println(xinxin); } }