题目描述
编写3个方法
方法1.将集合中的所有扑克重新洗牌,并将扑克输出(打印出来即可)
方法2.将集合中的所有扑克排序(按方块3方块2,草花3草花2, 红心3~红心2, 黑桃3~黑桃2的顺序排序)
方法3:比较两张扑克牌的大小,如果版面的值相等,则按(黑桃->红心->草花->方块)的顺序进行排列
测试以上方法
代码
import org.jetbrains.annotations.NotNull;
enum Color{
方块(4),草花(3),红心(2),黑桃(1);
private int v;
Color(int v){
this.v=v;
}
int getV(){
return v;
}
}
public class Puke implements Comparable<Puke>{
int value;
Color color;
public Puke(int value, Color color) {
this.value = value;
this.color = color;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
@Override
public int compareTo(@NotNull Puke o) {
if(this.getValue()==o.getValue()){
return this.getColor().getV()-o.getColor().getV();
}else{
return o.getValue()-this.getValue();
}
}
@Override
public String toString() {
return this.getColor()+"";
}
}
import java.util.*;
public class Test {
//方法一
static void Sys(List<Puke> list){
Collections.shuffle(list);
show(list);
}
//方法二
static void compara(List<Puke> list){
for(int i=4;i>=1;i--){
for (int j=0;j<list.size();j++){
if(list.get(j).getColor().getV()==i){
System.out.print(list.get(j).getColor().toString()+list.get(j).getValue()+" ");
}
}
}
System.out.println();
}
private static void show(List<Puke> list) {
for(Puke puke:list){
System.out.print(puke.getColor().toString()+puke.getValue()+" ");
}
System.out.println();
}
//方法三
static void sort(List<Puke> list){
Collections.sort(list);
}
public static void main(String[] args) {
List<Puke> list=new ArrayList<Puke>();
list.add(new Puke(3,Color.方块));
list.add(new Puke(3,Color.红心));
list.add(new Puke(3,Color.草花));
list.add(new Puke(3,Color.黑桃));
list.add(new Puke(2,Color.方块));
list.add(new Puke(2,Color.红心));
list.add(new Puke(2,Color.草花));
list.add(new Puke(2,Color.黑桃));
Test.Sys(list);
Test.compara(list);
Test.sort(list);
Test.show(list);
}
}