gpt4 book ai didi

java - 我如何在Java中将外部数据放入数组中

转载 作者:行者123 更新时间:2023-12-02 03:34:54 26 4
gpt4 key购买 nike

在我的大学里,我必须做一个项目,其中包括我必须使用 Java 纠正我自己的坐标系并且它必须是动态的以及一个小程序。

大部分已经完成,但我不知道如何将外部数据放入我的数组中。我不知道我得到了多少个参数(可能是 10 个,也可能是 10000 个)。

那么我如何告诉数组它需要多少空间以及如何将参数放入其中?

它始终是 x 和 y 坐标,所以我有 2 个数组。

这是我已经尝试过的代码。我对数组的参数进行了硬编码,只是为了看看它是否有效。

在java代码下面我发布了html代码。其中是我想要添加到数组中的参数。

import java.awt.*;
import java.applet.Applet;
import java.lang.Math;

public class graph extends java.applet.Applet {
//Array x-Werte
private double[] WerteX= {0.0, 5.5, 6.5, 7.0, 16.6, 50.6};

//Array y-Werte
private double[] WerteY= {0.0 , 100.0, 320.0, 550.0, 700.0, 0.3};

public void init() {
// Hintergrundfarbe schwarz
setBackground (Color.black);
}

public void paint (Graphics g) {
float x, y;
int xnorm, ynorm, i;

// initialisierung der min und max X/Y werte damit sich das System anpasst
double minX= WerteX [0];
double maxX= WerteX [0];
double minY= WerteY [0];
double maxY= WerteY [0];

// zum Kleinsten bzw. größten Wert im Array raussuchen (Prinzip Bubbelsotrt (ungefähr))
for ( i=1; i<WerteX.length; i++) {

if (WerteX[i]<minX){
minX=WerteX[i];
}
if (WerteX[i]>maxX){
maxX=WerteX[i];
}
if (WerteY[i]<minY){
minY=WerteY[i];
}
if (WerteY[i]>maxY){
maxY=WerteY[i];
}
}

// Vordergrundfarbe Rot fuer die Achsen
g.setColor (Color.red);

// X-Achse zeichnen (schon skaliert auf 500%)
g.drawLine (0, 650, 650, 650);

// Y-Achse zeichnen (schon skaliert auf 500%)
g.drawLine (100, 0, 100, 650);

// Skaleneinteilung fuer die X-Achse zeichnen
for (i = 100; i <= 750; i += 150){
g.drawLine (i, 0, i, 650);
}

// Skaleneinteilung fuer die Y-Achse zeichnen
for (i = 0; i <= 650; i += 50){
g.drawLine (100, i, 750, i);
}

double Irgendwasdx=maxX-minX; // achsen bezeichnung
double Irgendwasdy=maxY-minY;

maxX+=Irgendwasdx/12;

maxY+=Irgendwasdy/12;

g.setColor(Color.red); // farbe des Systems und schrift
g.setFont(new Font("Arial", Font.BOLD, 20));

// Koordinatenbezeichnung x-Achse

i=0;

for ( double plotty= minX; plotty<=maxX; plotty+=(maxX-minX)/(13.0/3.0)){

g.drawString(String.valueOf(Math.round(plotty)), 100+i*150, 670); //runden
i++;
}

//Koordinatenbezeichnung y-Achse
i=0;

for ( double plotty= minY; plotty<=maxY; plotty+=(maxY-minY)/13){

g.drawString(String.valueOf(Math.round(plotty)), 80 ,650-50*i); //runden
i++;
}

int size = WerteX.length;

g.setColor (Color.white);

for (i=0; i<size; i++) { //Punkte
g.fillOval ((int)(WerteX[i]*650/(maxX-minX)-650*minX/(maxX-minX))+100-3, 650-(int)(WerteY[i]*650/(maxY-minY)-650*minY/(maxX-minY))-3, 6, 6);
}
//Punkte verbinden
for (i=0; i<size-1; i++) {
g.drawLine ((int)(WerteX[i]*650/(maxX-minX)-650*minX/(maxX-minX))+100, 650-(int)(WerteY[i]*650/(maxY-minY)-650*minY/(maxX-minY)),(int)(WerteX[i+1]*650/(maxX-minX)-650*minX/(maxX-minX))+100, 650-(int)(WerteY[i+1]*650/(maxY-minY)-650*minY/(maxX-minY)));
}

}

}

<html>
<head>
</head>
<body>

<Applet code="graph.class" width="700" height="700">

<param name= "P" value=5>

<param name="x0" value="0.60">
<param name="x1" value="1.20">
<param name="x2" value="2.50">
<param name="x3" value="3.40">
<param name="x4" value="3.80">

<param name = "N" value =5>

<param name="y0" value="0.00">
<param name="y1" value="0.12">
<param name="y2" value="0.25">
<param name="y3" value="0.37">
<param name="y4" value="0.50">


</Applet>

</body>
</html>

最佳答案

构造一个大小为 X 的 double 组

double[] NameOfYourArray = new double[x];

构造一个数组/列表 - 可以接受无限对象/ double 类型(在本例中)

ArrayList<Double> nameOfYourArray = new ArrayList<Double>();
nameOfYourArray.add(NEW_ELEMENT); // to add an element of type Double.
nameOfYourArray.get(INDEX); // to get the element at position INDEX

坐标

Java 是一种面向对象的语言,这意味着您可以用对象来表示任何东西。对象是通过定义类来创建的。就像 Double、ArrayList、String、Integer 等都是类。我们可以创建自己的坐标类来保存 x 和 y。

public class Coordinate {
private double x; private double y;

public Coordinate(double x, double y){
this.x = x; this.y = y;
}

public double getX(){ return x; }
public double getY(){ return y; }
}

为了使坐标系统正常工作,您需要将 ArrayList 的类型更改为 Cooperative,而不是 Double。

此外,在名为 Cooperative.java 的新文件中定义坐标。它应该与当前文件位于同一目录中。

关于java - 我如何在Java中将外部数据放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37556455/

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