-
list map
查看全部 -
Map中的Hash Map
创建方法与List的类似(key,value)
添加与修改都是.put方法
删除是remove
遍历可用keySet(value)、entrySet(映射)
查看全部 -
Collection中的ArrayList与hashset
ArrayList与hashset的创建方法
两者不同为:前者为有序的可重复集合,后者为无序的不可重复集合。
ArrayList<Integer> loadsList = new ArrayList<Integer>();
HashSet<Integer> loadsSet = new HashSet<Integer>();
增:对象.add(All)
查:对象.get
改:对象.set
删:对象.remove(All)
泛型:创建时ArrayList.<类型>
查看全部 -
在泛型集合中,除了能够存储泛型类型的对象实例,还可以存储泛型的子类型的对象实例。
泛型集合中的限定类型不能使用基本数据类型,必须使用引用类型
可以通过使用包装类限定允许存入的基本数据类型
泛型笔记:
http://www.runoob.com/java/java-generics.html
查看全部 -
将基本类型转换为字符串
将字符串转换为基本类型
查看全部 -
对String的一些查询转换等方法
查看全部 -
泛型
像是一个 检查器 来检查传入进 List 中的元素是否为提前规定的类型,如果是,则一切正常,如果不是,则元素是传不进去的。
访问控制符 List < 类型 > 属性名;
且初始化 List 也要带有 泛型;
this . 属性名 = new ArraysList < 类型 >( );
注:泛型 还有一大好处,因为泛型规定了传入 List 的类型,所以在读取是,元素不再是以 Object 的类型出现,所以使用 泛型 传入的元素,取读时不用再 强转类型 。
查看全部 -
异常 的使用总结
查看全部 -
异常链写法
查看全部 -
装箱:将基本类型转换为包装类
手动装箱:
int a = 1;
Integer b = new Integer(a);
自动装箱:
Integer c = a;
拆箱:将包装类转换为基本类型
手动拆箱:
Double a = new Double(1);
double b = a.DoubleValue();
自动拆箱:
double c = a;
查看全部 -
package package1;
/*
* 玩家信息类,含玩家ID、姓名及玩家手牌集合;
*/
import java.util.ArrayList;
import java.util.List;
public class Player {
public int id;//玩家id;
public String name;//玩家姓名;
public List<Card> handpocker;//玩家手牌;
public Player(int id, String name) {
super();
this.id = id;
this.name = name;
this.handpocker=new ArrayList<Card>();
}
public Player() {
super();
// TODO Auto-generated constructor stub
}
}
package package1;
import java.util.List;
/*
* 手牌类,含点数及花色信息;
* */
public class Card {
public String number;// 扑克牌点数大小
public String type;// 扑克牌花色类型
public Integer type1;//花色类型的数字代号(黑桃为1,红桃为2,梅花为3,方片为4);
public Integer number1;//扑克牌点数数字代号
public Card() {
super();
// TODO Auto-generated constructor stub
}
public Card(String number, String type) {
super();
this.number = number;
this.type = type;
if(this.type.equals("黑桃")) {
this.type1=4;
}else if(this.type.equals("红桃")) {
this.type1=3;
}else if(this.type.equals("梅花")) {
this.type1=2;
}else{
this.type1=1;
}
if(this.number.equals("A")) {
this.number1=15;
}else if(this.number.equals("J")) {
this.number1=11;
}else if(this.number.equals("Q")) {
this.number1=12;
}else if(this.number.equals("K")) {
this.number1=13;
}else if(this.number.equals("2")) {
this.number1=2;
}else if(this.number.equals("3")) {
this.number1=3;
}else if(this.number.equals("4")) {
this.number1=4;
}else if(this.number.equals("5")) {
this.number1=5;
}else if(this.number.equals("6")) {
this.number1=6;
}else if(this.number.equals("7")) {
this.number1=7;
}else if(this.number.equals("8")) {
this.number1=8;
}else if(this.number.equals("9")) {
this.number1=9;
}else if(this.number.equals("10")) {
this.number1=10;
}
}
package package1;
import java.util.ArrayList;
import java.util.Collections;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
public class Game {
public List<Card> cardslist; //用于存放扑克牌卡片的List集合;
public List<Player> playerlist;//用于存放玩家信息的List集合;
public Game(List<Card> cardslist,List<Player> playerlist) {
this.cardslist = new ArrayList<Card>();
this.playerlist = new ArrayList<Player>();
}
/*
* 创建一副52张的扑克牌 ;
*/
public void CreatPocker() {
System.out.println("--------------创建扑克牌---------------");
String[] point = new String[]{"1","2","3","4","5","6","7","8","9","10","J","Q","K","A"};//扑克牌点数数组;
String[] pattern = new String[] {"黑桃","红桃","梅花","方块"};//扑克牌花色数组;
for(int i=0;i<13;i++) {
for(int j=0;j<4;j++) {
Card card = new Card(point[i],pattern[j]);
cardslist.add(card);
}
}
System.out.println("扑克牌创建完毕,请开始游戏!");
}
/*
* 输入玩家信息;
*/
public void CreatePlayer() {
System.out.println("------------请输入玩家个数:--------------");
Scanner N =new Scanner(System.in);
int N_player=N.nextInt();//N_player为玩家个数;
System.out.println("------------请输入玩家信息:--------------");
Player player=new Player();
Scanner console = new Scanner(System.in);
boolean bool;
for(int i=1;i<=N_player;i++) {
do {
try{
bool=false;
System.out.println("请输入第"+i+"位玩家ID:");
int id = console.nextInt();
System.out.println("请输入第"+i+"位玩家姓名:");
String name = console.next();
player=new Player(id,name);
}catch (InputMismatchException e) {
console.next();
bool=true;
System.out.println("请输入正确的ID格式(纯数字)!");
}
}while((playerlist.contains(player))||(bool==true));
playerlist.add(player);
}
System.out.println("---------------"+N_player+"位玩家信息输入完毕!----------------");
}
/*
* 洗牌;
*/
public void ShuffleCard() {
System.out.println("开始洗牌:");
Collections.shuffle(cardslist);
//System.out.println("洗牌结束!");
}
/*
* 发牌;
*/
public void FaPai() {
System.out.println("开始发牌:");
for(int i=0;i<playerlist.size();i++) {
for(int j=0;j<2;j++)
{
playerlist.get(i).handpocker.add(cardslist.get(0));
cardslist.remove(0);
}
}
//System.out.println("发牌结束!");
}
/*
* 比较大小且输出;
*/
public void compare() {
System.out.println("--------------每个玩家信息及拿牌情况--------------");
for(int i=0;i<playerlist.size();i++) {
System.out.println("第"+(i+1)+"位玩家信息:");
System.out.println("ID为: "+playerlist.get(i).id+" 姓名为: "+playerlist.get(i).name);
System.out.println("第"+(i+1)+"位玩家拿牌情况:");
for(int j=0;j<playerlist.get(i).handpocker.size();j++) {
System.out.println("点数为: "+playerlist.get(i).handpocker.get(j).number+" 花色为: "+playerlist.get(i).handpocker.get(j).type);
}
}
//将每个玩家手中最大的牌添加到CardmaxList集合中;
List<Card> CardmaxList = new ArrayList<Card>();
for(int i=0;i<playerlist.size();i++) {
Collections.sort(playerlist.get(i).handpocker,new CardCompare());
CardmaxList.add(playerlist.get(i).handpocker.get(playerlist.get(i).handpocker.size()-1));
}
//比较每个玩家手中最大的牌;
int max = 0;
int k = 0;
// Collections.sort(CardmaxList,new CardCompare());
for(int j=0;j<CardmaxList.size()-1;j++) {
k = CardmaxList.get(j).number1.compareTo(CardmaxList.get(j+1).number1);
if(k==0) {
if(CardmaxList.get(j).type.equals(CardmaxList.get(j+1).type)) {
k=0;
}else {
k=CardmaxList.get(j).type1.compareTo(CardmaxList.get(j+1).type1);
}
}
if(k==0){
System.out.println("平局,请重新开始!");
}else if(k<0) {
max=j+1;
}
}
//输出赢家信息;
if(k!=0) {
System.out.println("赢家为: id: "+playerlist.get(max).id+" 姓名:"+playerlist.get(max).name);
}
}
}
}
package package1;
import java.util.Comparator;
public class CardCompare implements Comparator<Card> {
@Override
public int compare(Card o1, Card o2) {
// TODO Auto-generated method stub
int i = o1.number1.compareTo(o2.number1);
if(i==0) {
if(o1.type.equals(o2.type)) {
return 0;
}else {
return o1.type1.compareTo(o2.type1);
}
}else {
return i;
}
}
}
package package1;
import java.util.List;
import java.util.Scanner;
import java.util.Collection;
import java.util.Collections;
//纸牌游戏,比较大小
public class pocker {
public static void main(String[] args) {
// TODO Auto-generated method stub
Game game=new Game(null, null);
game.CreatPocker();
game.CreatePlayer();
game.ShuffleCard();
game.FaPai();
game.compare();
}
}
查看全部 -
for ( int num = 0; num<nums.length;num++ ) {
System.out.print(nums[num] + " ");
与下面方法相同:
// 使用foreach循环输出数组中的元素
for ( int num : nums ) {
System.out.print(num + " ");
查看全部 -
List 之删除元素:
remove 方法:先要将想要删除的元素取读,将需要删除的元素导入 remove( )方法中,即可被删除。
另一种 remove 方法:不用先将 List 中将要被删除元素取读,直接输入将要被删除的元素的索引位置即可。
removeAll 方法:删除 List 中的多个元素,将想要删除的几个元素,以创建数组的形式取读出来,然后使用 removeAll 方法删除这个数组,其中会使用到 Arrays.asList 方法将数组转换为集合,
查看全部 -
Date 类最主要的作用就是获得当前时间
// 创建Calendar对象
Calendar c = Calendar.getInstance();
// 将Calendar对象转换为Date对象
Date date = c.getTime();
// 创建SimpleDateFormat对象,指定目标格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将日期转换为指定格式的字符串
String now = sdf.format(date);
System.out.println("当前时间:" + now);
查看全部 -
查看全部
举报