如何在Java中将外部数据放入数组
在我的大学里,我必须做一个项目,其中包括一个部分,我必须用Java调整我自己的坐标系统,它必须是动态的,还有一个小程序 基本上已经完成了,但我不知道如何将外部数据放入阵列中。我不知道我得到了多少个参数(可能是10个,但也可能是10000个) 那么,如何告诉数组需要多少空间,以及如何将参数放入其中 它总是x和y坐标,所以我有两个数组 这是我已经尝试过的代码。我有数组的硬编码参数,只是为了看看它是否工作 在java代码下面,我发布了html代码,其中是我想要添加到数组中的参数如何在Java中将外部数据放入数组,java,arrays,applet,awt,coordinate-systems,Java,Arrays,Applet,Awt,Coordinate Systems,在我的大学里,我必须做一个项目,其中包括一个部分,我必须用Java调整我自己的坐标系统,它必须是动态的,还有一个小程序 基本上已经完成了,但我不知道如何将外部数据放入阵列中。我不知道我得到了多少个参数(可能是10个,但也可能是10000个) 那么,如何告诉数组需要多少空间,以及如何将参数放入其中 它总是x和y坐标,所以我有两个数组 这是我已经尝试过的代码。我有数组的硬编码参数,只是为了看看它是否工作 在java代码下面,我发布了html代码,其中是我想要添加到数组中的参数 import java
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>
import java.awt.*;
导入java.applet.applet;
导入java.lang.Math;
公共类图扩展了java.applet.applet{
//阵列x-Werte
私人双[]WerteX={0.0,5.5,6.5,7.0,16.6,50.6};
//阵列y-Werte
私人双[]WerteY={0.01100.0320.0550.0700.0,0.3};
公共void init(){
//HintergrundArbe schwarz
挫折背景(颜色:黑色);
}
公共空间涂料(图g){
浮动x,y;
int xnorm,ynorm,i;
//在最小和最大X/Y情况下初始化系统
双minX=WerteX[0];
双maxX=WerteX[0];
双minY=WerteY[0];
double maxY=WerteY[0];
//祖姆·克莱因斯坦·布兹瓦·格尔滕·韦特·伊姆·劳森(普林齐普·布布伯尔肖特(ungefähr))
对于(i=1;i为大小为X的双精度数组构造数组
double[]NameOfYourArray=newdouble[x];
构造一个数组/列表类型,该类型可以接受无限个对象/双精度(在本例中)
要使坐标系工作,您需要将ArrayList的类型更改为坐标,而不是双精度
另外,在名为Coordinate.java的新文件中定义坐标。该文件应与当前文件位于同一目录中。为大小为X的两倍文件构建数组
double[]NameOfYourArray=newdouble[x];
构造一个数组/列表类型,该类型可以接受无限个对象/双精度(在本例中)
要使坐标系工作,您需要将ArrayList的类型更改为坐标,而不是双精度
另外,在一个名为Coordinate.java的新文件中定义坐标。它应该与当前文件位于同一目录中。Eg要构造一个可以包含七个double的新数组==>double[]=new double[7]
。如果您想让它拥有“无限”的空间,请尝试使用ArrayList。此外,由于您使用的是面向对象的编程语言,您可以创建自己的坐标类,该类可以生成许多坐标对。很抱歉,我忘了说我是absulut初学者,所以请更详细一点……)1) 为什么要编写小程序?如果是因为老师指定了它,请参考。2)请参阅和…3)为什么要使用AWT?请参阅许多好的理由,放弃使用组件的AWT,转而使用Swing。为什么要编写小程序?因为我们的老师说ist必须是…可能我说错了数据在外部文件(html)中下面是一个示例:例如构造一个新数组,该数组可以包含七个double==>double[]=newdouble[7]
。如果您想让它拥有“无限”的空间,请尝试使用ArrayList。此外,由于您使用的是面向对象的编程语言,您可以创建自己的坐标类,该类可以生成许多坐标对。很抱歉,我忘了告诉您我是absulut初学者,所以请更详细一点……)1)为什么要编写小程序?如果是由于老师指定的原因,请参考。2)请参阅和….3)为什么使用AWT?请参阅许多好的理由,放弃使用组件的AWT,转而使用Swing。为什么是小程序?因为我们的老师说ist必须是….可能我说错了数据在外部文件(html)中。以下是一个示例:
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
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; }
}