JAVA编程创建一个List集合cards,再54张扑克牌存放到其中,请按下列要求编写程序:

java实现54张扑克,存放在一个List .实现List中扑克排序,要求采用的顺序为:大王,小王~

送你一个全套洗牌加排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class CardSort {
private static String[] cards = new String[54];
List listCards = new ArrayList();
public CardSort(){
Scanner sc = new Scanner(System.in);
System.out.print("是否发牌:(N不发牌,其他继续)");
while(!"n".equalsIgnoreCase(sc.nextLine())){
createCard();
randomCard();
outCart();
System.out.println();
System.out.println();
System.out.println();
System.out.println("排序后的牌为:");
sortCard();
outCart();
System.out.print("是否发牌:(N不发牌,其他继续)");
};
}

public static void main(String[] args) {
new CardSort();
}
//造牌
public void createCard(){
String[] king = {"大王","小王"};
String[] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] cardColor = {"黑桃","草花","红桃","梅花"};
for(int i=0;i<cardColor.length;i++){
for(int j=0;j<number.length;j++){
cards[i*13+j] = cardColor[i]+number[j];
}
}
cards[52] = king[0];
cards[53] = king[1];

}
//洗牌
public void randomCard(){
Random r = new Random();
String tempCard ="";
int randomNum = 0;
for(int i=54;i>1;i--){
randomNum = r.nextInt(i);
tempCard =cards[i-1];
cards[i-1] = cards[randomNum];
cards[randomNum] = tempCard;
}
listCards.clear();
for(String card:cards){
listCards.add(card);
}
}
//输出牌
public void outCart(){
int tabLine = 0;
for(String list:listCards){
tabLine++;
System.out.print(list+"");
if(tabLine%10==0){
System.out.println();
}
}
System.out.println();
}
//排序
public void sortCard(){
Collections.sort(listCards, new Comparator(){
@Override
public int compare(String o1, String o2) {
int magicO1 = StringToInt(o1);
int magicO2 = StringToInt(o2);
return magicO2-magicO1;
}
private int StringToInt(String o){
char splitS1 = o.charAt(0);
char splitS2 = o.charAt(1);
int step1 = splitS1*2 - splitS2;
int step2 = 0;
if(o.length()==2){
step2 =step1 + 300000 - splitS1 *10;
}else{
int splitNum = 0;
String splitS3 = o.substring(2, o.length());
if("A".equals(splitS3)){
splitNum =1 ;
}else if("J".equals(splitS3)){
splitNum =11;
}else if("Q".equals(splitS3)){
splitNum =12;
}else if("K".equals(splitS3)){
splitNum =13;
}else{
splitNum = Integer.parseInt(splitS3);
}
step2 = step1-splitNum;
}
return step2;
}


});
}
}

一:import java.util.Scanner;
public class Play {
/**
* 玩牌
*/
public static void main(String[] args) {
Poker poker = new Poker();
boolean over = false;
Scanner cin=new Scanner(System.in);
while(!over){
System.out.println("打牌输入1,展示剩余牌输入其他字符:");
String c=cin.nextLine();
if("1".equals(c)){
int index = (int) (Math.random()*poker.getSize());
poker.remove(index);
}else{
poker.ShowPages();
}
}
/*for(int i = 0;i<54;i++){
int index = (int) (Math.random()*poker.getSize());
poker.remove(index);
poker.ShowPages();
}
*/
}
}二://牌
public class Page { private String huase = "";
private String haoma = "";
public Page(String huase,String haoma){
this.huase = huase;
this.haoma = haoma;
}
public String show(){
return this.huase+this.haoma;
}
}三:import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* 一副扑克
*/
public class Poker {
private List pages = new ArrayList();
public Poker(){
String huase[] = new String[]{"黑桃","红桃","草花","方块"};
String haoma[] = new String[]{"A","2","3","4","5","6","7","8","9","10"
,"J","Q","K"};
for(int i = 0;i<haoma.length;i++){
for(int j = 0;j<huase.length;j++){
pages.add(new Page(huase[j],haoma[i]));
}
}
pages.add(new Page("","大王"));
pages.add(new Page("","小王"));
}
public void ShowPages(){
System.out.println("展示剩余牌:");
for(Iterator i = pages.iterator();i.hasNext();){
System.out.println(((Page)i.next()).show());
}
}
//打牌
public void remove(int index){
pages.remove(index);
}
//剩余牌数
public int getSize(){
return pages.size();
}
}

public class PlayCard {

private List<Integer> list;
/**
* JAVA编程创建一个List集合cards,再54张扑克牌存放到其中
* (1)用3种不同方法输出54张牌;
* (2)调用Collections方法随机分派54张牌
*/
public PlayCard() {
list = new ArrayList<Integer>();
for(int i=1;i<55;i++){
list.add(i);
}
}
public void showPlayCard(){
System.out.println("方式一");
for(Integer i : list){
System.out.print(i+"\t");
}
System.out.println("方式二");
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+"\t");
}
System.out.println("方式三");
Iterator< Integer> it = list.iterator();
while(it.hasNext()){
System.out.print(it.next()+"\t");
}
}

// TODO调用Collections方法随机分派54张牌
public void randomPlayCards(){
// 把牌打乱
Collections.shuffle(list);
}

public static void main(String[] args) {
PlayCard p = new PlayCard();
p.randomPlayCards();
p.showPlayCard();

}

}

HR

用java初始化一个list,向list中添加值,并输出list中的值
答:import java.util.public class { public static void main(String arg[]) { List lis = new Arraylist();lis.add("wo");lis.add("shi");lis.add("wang");for(int i=0;i<lis.size(); i++){ System.out.print(lis.get(i)+" ");} } } ...

我要在java中定义list
答:List<Student > list= new ArrayList<Student >();Student s= new Student();list.add(s) // 循环存、、、Iterator it = list.iterator();if(it.hasNext()){ for(int i= 0; i<list.size(); i++){ Student s=(Student) list.get(it.next());} } //循环取 ...

Java程序:创建一个顺序表,输出该顺序表,将顺序表中所有值为x的元素替...
答:import java.util.ArrayList;import java.util.List;public class Test { / param args / public static void main(String[] args){ // 创建一个顺序表 List<String> a = new ArrayList<String>();a.add("a");a.add("b");a.add("c");a.add("x");a.add("d");a.add("x");/...

java,list:定义一个list数组怎么没法定义?该怎么定义...
答:arrayList本身就是一个数组了没必要那样定义。List集合包括JavaList接口以及List接口的所有实现类,List集合中的元素允许重复,各元素的顺序放是对象插入的顺序。ArrayList:底层的数据结构使用的是数组结构线程不同步。

java 产生一个随机整数数组
答:随即数组很常用,但是Java方面的相关资料也挺多的,大多都是用Vector向量数组做的。在此我分享一下我的做法,很简单的一个方法。如下代码:产生size大小的随机数组。private int[] createRandomArray(int size){ int[] list = new int[size];int count=0; //计数 int num = 0; //随机数 i...

在Java中 ,如何创建一个Arraylist,并初始化为空?
答:public class Demo{ public static void main(String arr[]){ ArrayList list= new ArrayList(); }}

JAVA题:创建一个ArrayList,然后向这个线性表中添加一个Loan对象,一个My...
答://test类import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner in=new Scanner(System.in); List<Object> list = new ArrayList(); System.out.println("请输入贷款金额==="); Loa...

创建一个类Sample,在main方法中定义一个ArrayList的集合类,并向集合中...
答:import java.util.ArrayList;import java.util.List;public class Sample { private static final int V_PAMETER = 100;//任意大的参数,可配置 public static void main(String[] args){ List list = new ArrayList();for(int i=0;i<V_PAMETER;i++){ list.add(i);//添加同一种类型元素 ...

JAVA中,定义了一个物品集合,如何通过一个商品的编号得到该商品的所有信...
答:首先你自己创建一个商品类,比如 class Goods{},然后在这个类里边定义这些属性,比如你的name,price等,然后分别实现他们的get、set方法,完了之后定义一个list。比如:list<Goods> glist = new ArrayList<Goods>();现在你可以创建商品并将其放入这个list集合中了。比如:Goods good = new Goods()...

JAVA中,声明一个List集合,往集合里添加A类型元素与B类型元素,再创建这 ...
答:最后,把你发的图的问题也解决了:String的hashcode方法和object不同,api中如此解释:public int hashCode()返回此字符串的哈希码。String 对象的哈希码根据以下公式计算:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网