package cn.itcast.demo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
/*
* 第1题:生成10个1-15之间的随机数,存储到List集合中(数字不能重复)。完成以下要求:
a、求出List集合中每个元素的阶乘(用递归计算),并对求出的结果进行降序排序输出
b、把排序后的数据中不能被2整除的元素打印到控制台。
*/
public class Demo1 {
public static void main(String[] args) {
Random ran = new Random();
ArrayList<Integer> list = new ArrayList<>();
//HashSet<Integer> set = new HashSet<>();
while(list.size()<10){
int i = ran.nextInt(15)+1;
if(!list.contains(i)){
list.add(i);
}
}
System.out.println(list);
ArrayList<Long> newList = new ArrayList<>();
for(int i=0;i<list.size();i++){
newList.add(get(list.get(i)));
}
/*//利用集合的方法给集合排序
* Collections.sort(newList);
Collections.reverse(newList);
System.out.println(newList);
for(long i:newList){
if(i%2==1){
System.out.println(i);
}
}*/
//利用比较器 这是一个逆序排列的比较器
Collections.sort(newList, new A());
System.out.println(newList);
}
public static Long get(Integer a){
if(a==1){
return (long) 1;
}else {
return a*get(a-1);
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
/*
* 第1题:生成10个1-15之间的随机数,存储到List集合中(数字不能重复)。完成以下要求:
a、求出List集合中每个元素的阶乘(用递归计算),并对求出的结果进行降序排序输出
b、把排序后的数据中不能被2整除的元素打印到控制台。
*/
public class Demo1 {
public static void main(String[] args) {
Random ran = new Random();
ArrayList<Integer> list = new ArrayList<>();
//HashSet<Integer> set = new HashSet<>();
while(list.size()<10){
int i = ran.nextInt(15)+1;
if(!list.contains(i)){
list.add(i);
}
}
System.out.println(list);
ArrayList<Long> newList = new ArrayList<>();
for(int i=0;i<list.size();i++){
newList.add(get(list.get(i)));
}
/*//利用集合的方法给集合排序
* Collections.sort(newList);
Collections.reverse(newList);
System.out.println(newList);
for(long i:newList){
if(i%2==1){
System.out.println(i);
}
}*/
//利用比较器 这是一个逆序排列的比较器
Collections.sort(newList, new A());
System.out.println(newList);
}
public static Long get(Integer a){
if(a==1){
return (long) 1;
}else {
return a*get(a-1);
}
}
}
比较器
package cn.itcast.demo;
import java.util.Comparator;
public class A implements Comparator<Long> {
public int compare(Long o1, Long o2) {
//这是一个逆序排列的比较器 若把负号去掉,则为一个正序排列的比较器
return -o1.compareTo(o2);
}
}