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

从Double到int的可能有损转换;Java;链表[重复]

柳经纶
2023-03-14

目前,我正在使用链表,但是我有一个代码问题。下面的代码运行正常,但是当我试图用a添加一些节点来生成随机数时,它给了我这个错误。在为代码添加之前,运行添加,现在您可以在main中看到。也许我错过了什么。有人能帮我理解一下吗?

附言:评论部分是我试图“升级”的主要部分。

import java.util.Random;

class Node {
    private int value;
    private Node next = null;

    public Node(int value) {
        this.value = value;
    }

    public int getValue() { return this.value; }

    public Node getNext() { return this.next; }

    public void setNext(Node pNext) { this.next = pNext; }

}

public class linked {

    private Node head;
    private Node tail;
    private int size;

    public int getSize() { return this.size; }

    public void insert (Node ele) {
        if (this.head == null) {
            this.tail = ele;
            this.head = this.tail;
        }
        else {
                this.tail.setNext(ele);
                this.tail = ele;
        }
        this.size++;
    }

    @Override
    public String toString() {
        StringBuilder ret = null;
        if ((this.head != null) && (this.tail != null)) {

            ret = new StringBuilder("[Dimensione: " + this.size
                                                  + ", Head: "
                                                  + this.head.getValue()
                                                  + ", Tail: "
                                                  + this.tail.getValue()
                                                  + "] Elementi: ");
            Node tmp = this.head;
            while (tmp != null) {
                ret.append(tmp.getValue() + " -> ");
                tmp = tmp.getNext();
            }
            ret.append("/");
        }
        return ret == null ? "[null]" : ret.toString();
    }

    public static void main (String args[])
    {
        linked ll = new linked();
        System.out.println(ll);

        for(int i=0; i<15; i++) {
            Random rand = new Random();
            double pazz = rand.nextInt(50) + 1;
            ll.insert(new Node(pazz));
        }
        /*
        ll.insert(new Node(10));
        System.out.println(ll);

        ll.insert(new Node(25));
        System.out.println(ll);

        ll.insert(new Node(12));
        System.out.println(ll);

        ll.insert(new Node(20));
        System.out.println(ll);
        */
    }
}

共有1个答案

池阳伯
2023-03-14
double pazz = rand.nextInt(50) + 1;

在这里,您将pazz设置为double。您应该将其设置为int。

 类似资料:
  • 问题内容: 所以我最近写了下面的代码: 但是,它一直显示: 当我尝试使用cmd运行它时。 有人可以帮助并解释我所犯的错误吗?任何帮助表示赞赏:)。谢谢! 问题答案: 当您转换到,值的精度损失。例如,当您将4.8657(double)转换为int时,int值将为4.Primitive 不存储十进制数字,因此您将丢失0.8657。 在您的情况下,0.7是一个双精度值(除非提到float-0.7f,否则

  • 所以我最近写了以下代码: 当我尝试使用cmd运行它时,它一直显示以下内容: 有人能帮我解释一下我犯的错误吗?

  • 我试图在Textpad中复制这个Java程序,但我收到以下错误 C:\Users\User\Desktop\java\Drawing.java:14: 错误: 不兼容的类型: 从 float 到 int g.drawLine ((getWidth()/2) , 0, (getWidth()*i) , (getHeight()/2)); 这是代码 在getWidth*i之前我已经尝试过添加(floa

  • 我有一个“从int到byte的可能有损转换”错误的问题,但我没有在代码中将整数转换为byte。 这是笔记本课 我不知道为什么我会得到这个错误。有人能帮助我吗?谢谢你。

  • 我希望输入一个和另一个ex: 1和1000000000,现在我希望创建一个大小为1000000000的数组。然后在数组的每个索引处,存储int val,ex:。 当我尝试执行此操作时,Netbeans 会向我显示此行中的错误: “可能从long到int的有损转换”。这是我的密码:-