Java 使用另一个类的变量在构造函数中创建arraylist?
我正在尝试制作一个简化版的纸牌游戏,名为Eleven。我成功地创建了Java 使用另一个类的变量在构造函数中创建arraylist?,java,list,arraylist,Java,List,Arraylist,我正在尝试制作一个简化版的纸牌游戏,名为Eleven。我成功地创建了卡类,但创建卡组类时遇到问题。目标是创建一个具有独特卡牌的牌组。很抱歉,如果此解释不是最好的,但希望代码示例能有所帮助: 卡类构造函数: package ElevensLab; public class Card { private String suit; private String rank; private int pointValue; public Card(String cardRank
卡
类,但创建卡组
类时遇到问题。目标是创建一个具有独特卡牌的牌组。很抱歉,如果此解释不是最好的,但希望代码示例能有所帮助:
卡类构造函数:
package ElevensLab;
public class Card {
private String suit;
private String rank;
private int pointValue;
public Card(String cardRank, String cardSuit, int cardPointValue) {
rank=cardRank;
suit=cardSuit;
pointValue=cardPointValue;
}
package ElevensLab;
import java.util.List;
import java.util.ArrayList;
public class Deck {
private List<Card> cards;
private int size;
public Deck(String[] suits, String[] ranks, int[] values){
ArrayList<Card> cards=new ArrayList<Card>();
for(String suit: suits){
for(String rank: ranks){
for(int value: values){
cards.add(suit);
}
}
}
size=cards.size();
}
甲板级建造师:
package ElevensLab;
public class Card {
private String suit;
private String rank;
private int pointValue;
public Card(String cardRank, String cardSuit, int cardPointValue) {
rank=cardRank;
suit=cardSuit;
pointValue=cardPointValue;
}
package ElevensLab;
import java.util.List;
import java.util.ArrayList;
public class Deck {
private List<Card> cards;
private int size;
public Deck(String[] suits, String[] ranks, int[] values){
ArrayList<Card> cards=new ArrayList<Card>();
for(String suit: suits){
for(String rank: ranks){
for(int value: values){
cards.add(suit);
}
}
}
size=cards.size();
}
package-ElevensLab;
导入java.util.List;
导入java.util.ArrayList;
公务舱甲板{
私人名单卡;
私有整数大小;
公共甲板(字符串[]适合,字符串[]等级,int[]值){
ArrayList cards=新的ArrayList();
适用于(细绳西服:西服){
for(字符串秩:秩){
for(int值:值){
卡片。添加(套装);
}
}
}
size=cards.size();
}
好的,下面是:
因此,您正在制作一个Card
的ArrayList
。若要在ArrayList
中添加一个项目,它必须是Card
类型,对吗?所以在卡片组中的行上添加(套装)
您正在将一个字符串
添加到卡片
类型的数组列表
。我假设这会给您带来一个编译器错误。相反,我要做的是,实际上在卡片的内部放置一个卡片
构造函数。add()
调用。我将演示如何使用您的代码:
package ElevensLab;
import java.util.List;
import java.util.ArrayList;
public class Deck {
private List<Card> cards;
private int size;
public Deck(String[] suits, String[] ranks, int[] values){
ArrayList<Card> cards=new ArrayList<Card>();
for(String suit: suits){
for(String rank: ranks){
for(int value: values){
cards.add(new Card(rank, suit, value)); //This is the line I changed
}
}
}
size=cards.size();
}
package-ElevensLab;
导入java.util.List;
导入java.util.ArrayList;
公务舱甲板{
私人名单卡;
私有整数大小;
公共甲板(字符串[]适合,字符串[]等级,int[]值){
ArrayList cards=新的ArrayList();
适用于(细绳西服:西服){
for(字符串秩:秩){
for(int值:值){
卡片。添加(新卡片(等级、套装、价值));//这是我更改的行
}
}
}
size=cards.size();
}
此代码将一张新的
卡添加到牌组中,并带有所需的值。我希望这对您有所帮助,祝您好运!那么问题出在哪里?出于某种原因,您似乎正在将套装添加到卡列表中,而不是构建卡并将其添加到卡列表中。您是否需要设计帮助?我将说出一条指导方针并说声谢谢!我并没有考虑实际创建一个新的Card实例