当前位置: 首页 > 知识库问答 >
问题:

使用for循环向arraylist添加双数组值

罗祺
2023-03-14

如果我在问这个问题时犯了任何错误,我会提前道歉。我不熟悉stackoverflow和java。

我的问题是,我希望能够将一个普通的double数组转换为arraylist,我需要对这个arraylist元素进行操作,以便将值从x更改为-x(使用接口)

我正试图首先使用for循环元素逐个元素将数组double转换为arraylist(我认为应该先得到它),但.add似乎不起作用,这是我研究它时出现的解决方案。目前,它说“不能实例化类型Num”,我已经尝试删除抽象仍然没有什么好处。

我是不是完全错了?提前谢谢你的帮助。

这是我的密码。

public interface Num {
    public void neg(); // negation
    public void sqrt(); // square root 
    public String asString(); // number represented as a string
}
public class NumDouble implements Num {

    Double d;
    public NumDouble(Double d) {
        this.d = d;
    }

    @Override
    public void neg() {
        d = -d;
    }

    @Override
    public void sqrt() {
        d = Math.sqrt(d);
    }

    @Override
    public String asString() {
        return d.toString();
    }

}

这就是我一直在尝试的代码

import java.util.ArrayList;
import java.util.Arrays;

public abstract class NumList implements Num {

    ArrayList<Num> nums = new ArrayList<Num>();
    double[] doubles = {2.3, 2.2, 2.4};

    public void neg() {
        for (int i = 0; i < doubles.length; i++) {
            double value = doubles[i];
            nums.add(new Num(value));    <------this is highlighting as an error
        }
        return;
    }

    public void sqrt() {

    }
}

共有1个答案

程招
2023-03-14

您可以使用NumDouble执行此操作,也可以创建Num的匿名实例。

后者看起来像这样:

Num num = new  Num() {

        Double d;

        @Override
        public void neg() {
            d = -d;
        }

        @Override
        public void sqrt() {
            d = Math.sqrt(d);
        }

        @Override
        public String asString() {
            return d.toString();
        }

    };

正如您所看到的,这是没有意义的,因为您不能向匿名实例添加构造函数,并且您的接口不包含setter。

因此,我的建议是要么像这样使用NumDouble

nums.add(new NumDouble(value));

或者创建一个扩展Num的新类。

 类似资料:
  • 我有一个JPanel、窗口和一组JPanel和JLabel。我想在JFrame中添加5个JPanel,在每个JPanel中添加一个JLabel。每个JPanel将用于表示有关骰子的数据。 但是,当我运行代码时,只有最后一个JPanel出现在JFrame上,并带有文本“Dice 4”。我不明白为什么。 守则:

  • 我有以下2个数组,我需要根据第二个的ID值添加第一个的值作为Key,这样我就可以订购第二个数组DESC: $视图: 我有以下数组对象: $most_seen_list: 在下一个foreach中,我将完成它,我想更改使用我从另一个数组中获得的值设置键: 预期产出:

  • 问题内容: 我有一个奇怪的问题。我以为这会花我几分钟,但现在我已经挣扎了几个小时……这就是我得到的: 该是 在ArrayList中我得到了一些字符串(共14个左右),和他们的9,它得名_Hardi。 并使用上面的代码,我想删除它们。如果我使用a,那么它将打印出9次,这是好的,因为_Hardi在ArrayList中是9次。 但是,当我使用它时,它不会删除所有9个,而只会删除几个。我做了一些测试,我也

  • 问题内容: 我看到了如下一行代码: 就我所知,我认为要能够以这种格式编写for循环,我们需要将“ words”作为实现Iterable接口并覆盖iterator()函数的类的实例。但是’words’是String数组类型,这对于循环格式如何正确? 有人可以给我一些提示吗? 问题答案: 从有关此主题的Java教程中: for-each构造也适用于数组,其中它隐藏索引变量而不是迭代器。以下方法返回in

  • 我想设置每个React组件相对于它在数组中的索引的顶部样式,但是,我不确定如何正确地访问和设置属性。我将使用state设置它们,但是,包含我要操作的元素的节点是来自我正在编辑的节点的兄弟节点的子节点。有什么办法能有效地做到这一点吗? 'Portfoliet-Item'类应用于每个元素,我以这种方式选择每个元素,因为我认为我无法访问实际的React组件,因为它位于同级节点树中。 提前道谢!