gpt4 book ai didi

java - 按随机数递增 ArrayList 元素

转载 作者:行者123 更新时间:2023-12-02 04:58:58 25 4
gpt4 key购买 nike

所以我正在为我的 AP 计算机科学类(class)做一项涉及 ArrayList 的作业。对于#13 和 14,我应该将每个 ArrayList 元素增加 0 到 20(含)之间的随机数。我不明白为什么我不能使用 (ArrayList.set()) 方法来增加我的 ArrayList 元素。预先感谢您!

import java.util.Collection; //Driver Class
import java.util.Random;
import java.util.ArrayList;
import java.util.Random;
public class MusicDownloads {
public static void main(String[] args) {
ArrayList < DownloadInfo > music = new ArrayList < DownloadInfo > ();
music.add(new DownloadInfo("So What")); //2
music.add(new DownloadInfo("Blue in Green"));
music.add(new DownloadInfo("Night in Tunisia"));
music.add(new DownloadInfo("Fly Me to the Moon"));
music.add(new DownloadInfo("Come Fly With Me"));
music.add(new DownloadInfo("This Town"));
music.add(new DownloadInfo("Flamenco Sketches"));

int addNum = 0;
Random rand = new Random();
for (int i = 0; i < music.size(); i++) {
addNum = 0;
addNum = (int) Math.random() * 20; //13
music.set(i, music.get(i).addNumDL(addNum));
}


System.out.println("Num 13/14");
for (int i = 0; i < music.size(); i++) {
System.out.println(music.get(i)); //14
}
}
}




public class DownloadInfo //Object Class
{
private String title = "";
private int numDownloads = 0;

public DownloadInfo(String t) {
title = t;
}

public String getSongTitle() {
return title;
}

public void addNumDL(int addNum) {
numDownloads = addNum + numDownloads;
}

public int getnumDownloads() {
return numDownloads;
}

public String toString() {
return ("Song title: <" + title + "> " + " <Number of times downloaded: " + numDownloads + ">");
}
}

最佳答案

您应该add(...)元素而不是使用set(i, ...)

除此之外,还有一些风格上的挑剔:

  • 如果您想要一个整数,请不要使用 Math.random()。而是创建一个 Random(或者使用 ThreadLocalRandom,如果您使用的是 1.7 或更高版本)并使用其 nextInt(int) 方法。您甚至在上面实例化了一个 Random。
  • Java 有一个 += 运算符,可以更新适当的值。

关于java - 按随机数递增 ArrayList 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28481084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com