您如何编写程序将度数从Java列表中的弧度转换为弧度

问题描述 投票:0回答:3

因此程序需要执行以下操作:

替换以度数指定的角度列表中的元素,将其转换为等效的弧度,并且列表的大小保持不变。

这是我到目前为止所尝试的:

public static void toRadians(List<Double> t) {
    for(int i = 0; i < t.size(); i++) {
        Math.toRadians(t.get(i));

    } 
}

由于某种原因它无法正常工作,我几乎陷入了困境。

java oop math degrees radians
3个回答
2
投票

尝试这样做:

public static void toRadians(List<Double> t) {
    for(int i = 0; i < t.size(); i++) {
        t.set(i, Math.toRadians(t.get(i)));
    }
}

当您使用List#get(int index)来获得索引为List#get(int index)的元素的值时。您必须使用i的setter方法将值分配给索引为List#set(int index, E element)的元素。


0
投票

您可以使用List#set(int index, E element)来完成使用i的任务:

this explanation

使用Java 8+(但机制略有不同)执行此操作的极为简洁的方法是:

ListIterator

对于您的练习,毫无疑问,您将希望查看完成此任务和可变性的每种方式的时间复杂性,尤其是仅添加和删除列表中每个元素的时间复杂性。


0
投票

您可以使用public static List<Double> convertToRadians(List<Double> t) { for (final ListIterator<Double> iterator = t.listIterator(); iterator.hasNext(); ) { final Double element = iterator.next(); iterator.set(Math.toRadians(element)); } return t; } 变换列表中的元素:

public static List<Double> convertToRadians(List<Double> t) {

    t.replaceAll(Math::toRadians);
    return t;
}

或者,如果您不想更改原始列表,则可以使用replaceAll创建具有转换后的元素的新列表:

public static void toRadians(List<Double> degrees) {
    degrees.replaceAll(Math::toRadians);
}
© www.soinside.com 2019 - 2024. All rights reserved.