为什么是Arraylist<>。sublist() 没有映射到用户定义的数据类型 arraylist<>?


import java.io.*;
import java.util.*;
public class Cards
{
private int value;
private char suit;
public Cards()
{
value = 0;
suit = '0';
}
private void setValue (int value)
{
this.value = value ;
}
private void setSuit (char suit)
{
this.suit = suit;
}
public int getValue ()
{
return value;
}
public char getSuit ()
{
return suit;
}
public Cards[] dealCards(int userCount)
{
int n = (userCount * 2)+5;
ArrayList <Cards> pack = new ArrayList<>(52);
for (int i=0;i<13;i++)
{
Cards card = new Cards ();
for (int j=0;j<4;j++)
{
card.setValue (i+1);
switch (j)
{
case 0: card.setSuit('C');
break;
case 1: card.setSuit('D');
break;
case 2: card.setSuit('H');
break;
case 3: card.setSuit('S');
break;
;
}
pack.add(card);
}
}
Collections.shuffle(pack);
pack = pack.sublist(0,n);
return pack;
}
public static void main(String[] args) 
{
int userCount = 2;
Cards newTable[]= new Cards[(userCount*2)+5];
newTable.dealCards(userCount);
for(int i=0;i<(userCount *2)+5;i++)
{
System.out.println(newTable[i].getValue() + newTable[i].getSuit() );
}
}
}

上面的代码应该处理一组没有唯一的卡。但在编译时似乎存在某些错误:

1-pack=pack.sublist(0,n(所在的行出现找不到符号错误。

2-返回时,arraylist无法转换为Cards[]

3-newTable。dealCards(userCount(似乎向抛出了找不到符号错误。有没有一种方法可以在不改变代码的情况下解决这些错误!?

编辑:在将子列表更改为sublist之后,似乎出现了另一个错误,即无法将列表转换为arraylist。我们可以将列表存储在数组中吗!?而不是和arraylist。

1-pack=pack.sublist(0,n(的行找不到符号错误出现。

这是一个拼写错误用法:pack = pack.subList(0,n);

2-返回时,arraylist无法转换为Cards[]

subList返回另一个列表。将包声明为:

List<Cards> pack = new ArrayList<>(52);

然后将声明更改为

public List<Cards> dealCards(Cards[] newTable) {

3-newTable。dealCards(userCount(似乎抛出了找不到符号错误到.

如果不创建对象,就不能调用dealCards()。为此,请使用:

Cards cards = new Cards();
cards.dealCards(newTable);

现在你的主要内容看起来像这样:

public static void main(String[] args) {
int userCount = 2;
Cards cards = new Cards();
Cards newTable[] = new Cards[(userCount * 2) + 5];
List<Cards> dealCards = cards.dealCards(newTable);
for (int i = 0; i < (userCount * 2) + 5; i++) {
System.out.println(dealCards.get(i).getValue() + dealCards.get(i).getSuit());
}
}

您可以按如下方式修复它们:

pack.sublist(0,n(找不到符号出现错误。

List<Cards> pack = new ArrayList<>(52);
pack = pack.subList(0, n); // 1

arraylist无法转换为Cards[]

return pack.toArray(new Cards[0]); //2

newTable。dealCards(userCount(似乎抛出了找不到符号错误

Cards[] newTable = new Cards().dealCards(userCount); //3

最新更新