簡體   English   中英

你如何編寫一個程序來將度數從java中的列表轉換為弧度

[英]How do you write a program to convert degrees to radians from a list in java

所以程序需要做以下事情:

替換以度數指定的角度列表的元素,以將它們轉換為等效的弧度,並且列表的大小保持不變。

這是我迄今為止所嘗試過的:

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

    } 
}

我幾乎被卡住了,因為它由於某種原因不起作用。

嘗試這樣做:

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)獲取索引為i的元素值時。 您必須使用一個 setter 方法,即List#set(int index, E element) ,將值分配給具有索引i元素。

您可以使用replaceAll來轉換列表中的元素:

public static void toRadians(List<Double> degrees) {
    degrees.replaceAll(Math::toRadians);
}

或者,如果您不想更改原始列表,則可以使用map來創建一個元素已轉換的新列表:

public static List<Double> toRadians(List<Double> degrees) {
    return degrees.stream()
                  .map(Math::toRadians)
                  .collect(Collectors.toList());
}

您可以通過使用ListIterator 以下說明完成任務:

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;
}

使用 Java 8+(但機制略有不同)執行此操作的簡潔方法是:

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

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

對於您的練習,您無疑希望查看完成此任務的每種方式的時間復雜度和可變性,尤其是添加和刪除列表中每個元素的時間復雜度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM