我的数组正在加载,并且正在按计划(按照它们在文件中出现的顺序)将卡打印出来。当我尝试在单独的方法中循环遍历arraylist以检查数据是否存在时,它只打印最后一个对象而不是每个对象。有人能告诉我为什么吗?
加载法
public class
TestFrame {
//VARIABLES
private static Deck deck;
private static Card card;
private static Scanner scan;
private final static String fileName = "cards.txt";
static ArrayList<Card> cards = new ArrayList<>();
private static void Load(){
deck = new Deck();
card = new Card();
// Load in the card file so that we can work with the data from cards.txt internally rather than from the file constantly.
try(FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
Scanner infile = new Scanner(br)){
int numOfCards = infile.nextInt();
infile.nextLine(); // Do we need this? Yes we do. Illuminati confirmed.
for(int i=0; i < numOfCards; i++){
String value = infile.nextLine();
String suit = infile.nextLine();
Card newCard = new Card(value, suit);
card.addCard(newCard);
System.out.print(newCard.getValue());
System.out.print(newCard.getSuit());
System.out.println(" ");
//Print out the object before cycling through again so we can see if it's working
//We can use this to add then cards to the shuffle array at a later date
}
}
ah
2h
3h
4h
5h
6h
7h
8h
private static void displayAllCards(){
Card[] cards = Card.getAll();
for(Card c : cards){
System.out.print(Card.getValue());
System.out.print(Card.getSuit());
System.out.println(" ");
}
}
和getAll()方法
public static Card[] getAll(){
Card[] brb = new Card[cards.size()];
int tempCount = -1;
for(Card c : cards){
tempCount++;
brb[tempCount] = c;
}
return brb;
}
运行getAll()
时,它只打印出.txt文件中的最后一张牌“KS”(黑桃之王)。有人能告诉我为什么会这样吗?
谢谢
package uk.ac.aber.dcs.cs12320.cards;
import java.util.ArrayList;
public class Card {
protected static String value;
protected static String suit;
static ArrayList<Card> cardsList = new ArrayList<>();
public Card(String v, String s){
this.value = v;
this.suit = s;
}
public Card() {
}
public static Card[] getAll(){
Card[] brb = new Card[cardsList.size()];
int tempCount = -1;
for(Card c : cardsList){
tempCount++;
brb[tempCount] = c;
}
return brb;
}
public static void deleteAll(){
cardsList.clear();
}
public static String getValue() {
return value;
}
public void setValue(String value) {
Deck.value = value;
}
public static String getSuit() {
return suit;
}
public void setSuit(String suit) {
Deck.suit = suit;
}
public void addCard(Card card){
cardsList.add(card);
}
}
card.addCard(newCard);
我认为这应该是cards.addcard(newCard);
我有一个elasticsearch查询结果为 “顶部”:{ “命中”:{ {“_index”:“automatch_testing”,“_type”:“temp_135”,“_id”:“avu7i0nlxk6g_oqhu-ay”,“_score”:2.2237754,“_source”:{“t_pacs_id”:“28”,“t_id”:“60”,“matching”:“mo”,“uicriteri
问题内容: 我有很多任意大小的数组。这是一个正方形阵列。我正在尝试掌握如何像a 而不是a 那样对角地遍历(我已经知道该怎么做)。到目前为止,我有以下代码: 我有三个循环,因为这是我做另一个对角线的方式: 在尝试中,我不断超越边界并获取ElementOutOfBounds异常。假设阵列如下(3x3而不是500x500): 我想将以下内容打印为字符串: 先前的SO问题对于整数数组也有类似的问题,解决方
问题内容: 我无法从fetchAll获取数据以选择性打印。 在普通的mysql中,我这样做: 在PDO中,我遇到了麻烦。我绑定了参数,然后将获取的数据保存到上述的$ rs中,目的是以相同的方式循环遍历它。 现在出现了麻烦部分。我如何在PDO上做些什么来获得与上述while循环匹配的东西?我知道我可以使用print_r()或dump_var,但这不是我想要的。我需要做以前可以使用普通mysql进行的
问题内容: 如果您能帮助回答以下问题,我将不胜感激: 我已经使用Java以非常标准的方式创建了一个自定义链接列表。以下是我的课程: 我试图打印值我已经插入到列表如下 但是我从IDE获得的输出是 为什么打印出引用,而不打印出诸如bat,ant,rat …之类的字符串的实际值? 如果我想打印出实际值,那该怎么办? 非常感谢你 问题答案: 您的课程已经为您创建了! 将打印
我有一个简短的问题 我有飞行、水上课程和动物课程 如果我只想打印出动物对象数组中的飞行物体 做这样的事安全吗 或 执行此操作并重写toString方法 我是java新手,所以我甚至不确定这两个是否正确。所以欢迎任何帮助 谢谢你的帮助 编辑- 对不起,模棱两可的问题这是我问题的一个例子 我可以做输出 = A.toString() 来获取对象字符串还是我必须做 并重写toString方法以打印出类和示
我有一个对象数组,如下所示: 我想把它添加到一个退出的对象中,其中id是该对象的一个键,如下所示: