Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将引用对象添加到固定数组_Java_Arrays - Fatal编程技术网

Java 将引用对象添加到固定数组

Java 将引用对象添加到固定数组,java,arrays,Java,Arrays,我试图将类型Shoe的对象添加到类型Shoe的固定数组中,但我遇到了一个问题 在addShoe方法中,我试图向sh数组添加Shoe类型的引用,如下所示:sh.add(s) 当我尝试运行它时,出现以下错误: 无法对数组类型Shoe[]调用add(Shoe) Eclipse建议我将其更改为“length”,但它没有意义 我还想我可以写addShoes方法的另一部分,如下所示: } } public类鞋处理器 { 私家鞋[]上海; 私有整数numShoes=0; 私人鞋匠sc; 公共鞋匠() { s

我试图将类型Shoe的对象添加到类型Shoe的固定数组中,但我遇到了一个问题

在addShoe方法中,我试图向sh数组添加Shoe类型的引用,如下所示:sh.add(s)

当我尝试运行它时,出现以下错误:

无法对数组类型Shoe[]调用add(Shoe) Eclipse建议我将其更改为“length”,但它没有意义

我还想我可以写addShoes方法的另一部分,如下所示:

} }

public类鞋处理器
{
私家鞋[]上海;
私有整数numShoes=0;
私人鞋匠sc;
公共鞋匠()
{
sh=新鞋[10];
sc=新鞋类压缩机();
}
公共无效添加鞋(鞋)抛出鞋例外
{
如果(s.getId()<0){
抛出新的鞋例外;
}
否则{
sh.add(s);
numShoes++;
}
}
}

谢谢你的帮助

我想补充一点,我需要使用固定尺寸的阵列鞋


我还想补充一点,我不想扩展数组sh。我最多可以添加10个Shoe类型的引用。这就是为什么我还要计算添加的鞋的数量

Java中的数组具有固定大小。您有两个选择:

  • 切换到使用
    列表
    。当您向其中添加更多项目时,它会动态增长。对于实现,您可以使用
    ArrayList
    LinkedList

  • 每次需要添加阵列时,请尝试使用调整阵列大小。我不推荐这个。在内部,这实际上是
    ArrayList
    所做的事情,但是如果您选择手动执行,您可以自由地执行

编辑:刚刚看到你的编辑。您可以执行以下操作:

public void addToList(鞋){
如果(鞋类列表大小()<10){
鞋匠。添加(鞋);
}
}
ShoarrayCount=0;
公共空间附加阵列(鞋){
如果(ShoarRayCount<10){
Shoearlay[ShoearlayCount]=鞋;
ShoarRayCount++;
}
}

取决于您选择的输入方法。

可能我遗漏了一些内容:是否要替换
sh.add带有
sh[numShoes]=s

你不能那样做。相反,使用
ArrayList
+1@SLaks。数组的大小是固定的:如果您想动态扩展它们,您必须创建一个大小为+1的新数组,或者使用arraylist/vector等。这正是我的问题。我很难将类型Shoe的引用对象添加到类型Shoe的数组中。这就是为什么我写了两个不同的选项和我尝试过的一切。这很简单,我忘了。非常感谢。

    public void addShoe(Shoe s) throws ShoeException
    {
        if(s.getId() < 0) {
            throw new ShoeException(s);
        }
                else {
                        if(numShoes<=10){
                            sh = Arrays.add(s, numShoes);
                            numShoes++;
                        }
                }
         }

    public class TestShoe {

public static void main(String[] args) {

    ShoeProcessor s = new Shoe();
    Shoe s1 = new Shoe(7, "Black");
    Shoe s2 = new Shoe(10, "Red");

    try {
        s.addShoe(s1);
                    s.addShoe(s2);

    }catch(ShoeException bex){
        System.out.println("Shoe Exception:  "  + bex);
    }
public class ShoeProcessor
{
private Shoe [] sh;
private int numShoes=0;
private ShoeComparator<Shoe> sc;

public ShoeProcessor()
{
    sh = new Shoe [10];
    sc=new ShoeComparator<Shoe>();
}


public void addShoe(Shoe s) throws ShoeException
{
    if(s.getId() < 0) {
        throw new ShoeException(s);
    }
    else {
        sh.add(s);
        numShoes++;
    }
}
}
public void addToList(Shoe shoe) {
    if(shoeList.size() < 10) {
        shoeList.add(shoe);
    }
}

shoeArrayCount = 0;
public void addToArray(Shoe shoe) {
    if(shoeArrayCount < 10) {
        shoeArray[shoeArrayCount] = shoe;
        shoeArrayCount++;
    }
}