顺序表oj题目"/>
顺序表oj题目
顺序表oj题目
- 杨辉三角
- 洗牌算法
- 扑克牌的实体类
- 洗牌算法
- 测试类
杨辉三角
public class SanJiao {public static void main(String[] args) {ArrayList<ArrayList<Integer>> arrayList=new ArrayList<>();ArrayList<Integer> arrayList1=new ArrayList<>();arrayList1.add(1);arrayList.add(arrayList1);for(int i=1;i<6;i++){ArrayList<Integer> arrayList2=new ArrayList<>();arrayList2.add(1);ArrayList<Integer> arrayList3=arrayList.get(i-1);for(int j=1;j<i;j++){int ans=(arrayList3.get(j-1)+arrayList3.get(j));arrayList2.add(ans);}arrayList2.add(1);arrayList.add(arrayList2);}System.out.println(arrayList);}
}
洗牌算法
扑克牌的实体类
public class Card {private String suit;//花色private int rank;//数字public Card(String suit, int rank) {this.suit = suit;this.rank = rank;}public String getSuit() {return suit;}public void setSuit(String suit) {this.suit = suit;}public int getRank() {return rank;}public void setRank(int rank) {this.rank = rank;}@Overridepublic String toString() {return suit+":"+rank+" ";}
}
洗牌算法
import java.util.ArrayList;
import java.util.List;
import java.util.Random;/*** @Author 12629* @Description:*/
public class CardDemo {private final String[] suits = {"♥","♠","♦","♣"};/*** 52张 1-K* J Q K* 11 12 13* @return*/public List<Card> buyCard() {List<Card> cardList = new ArrayList<>();for (int i = 0; i < 4; i++) {for (int j = 1; j <= 13; j++) {Card card = new Card(suits[i],j);cardList.add(card);}}return cardList;}public void shuffle(List<Card> cardList) {Random random = new Random();for (int i = cardList.size()-1; i > 0; i--) {int index = random.nextInt(i);//index i 交换swap(cardList,i,index);}}private void swap(List<Card> cardList,int a,int b) {Card tmp = cardList.get(a);cardList.set(a,cardList.get(b));cardList.set(b,tmp);/*** tmp = a* a = b* b = tmp*/}/*** 揭牌* 3个人 每个人轮流揭牌5张* @param cardList*/public void getCard(List<Card> cardList) {List<Card> hand1 = new ArrayList<>();List<Card> hand2 = new ArrayList<>();List<Card> hand3 = new ArrayList<>();List<List<Card>> hands = new ArrayList<>();hands.add(hand1);hands.add(hand2);hands.add(hand3);//3个人 轮流抓牌5张 每次揭牌1张for (int i = 0; i < 5; i++) {//j代表人for (int j = 0; j < 3; j++) {Card card = cardList.remove(0);hands.get(j).add(card);}}System.out.println("第1个揭牌如下:");System.out.println(hand1);System.out.println("第2个揭牌如下:");System.out.println(hand2);System.out.println("第3个揭牌如下:");System.out.println(hand3);System.out.println("剩下的牌:");System.out.println(cardList);}}
测试类
import java.util.List;/*** @Author 12629* @Description:*/
public class Test {public static void main(String[] args) {CardDemo cardDemo = new CardDemo();List<Card> cardList = cardDemo.buyCard();System.out.println("买的牌如下:");System.out.println(cardList);System.out.println("洗牌:");cardDemo.shuffle(cardList);System.out.println(cardList);System.out.println("揭牌:");cardDemo.getCard(cardList);}
}
未完待续。。。。
更多推荐
顺序表oj题目
发布评论