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

如何在Java中将外部数据放入数组,java,arrays,applet,awt,coordinate-systems,Java,Arrays,Applet,Awt,Coordinate Systems,在我的大学里,我必须做一个项目,其中包括一个部分,我必须用Java调整我自己的坐标系统,它必须是动态的,还有一个小程序 基本上已经完成了,但我不知道如何将外部数据放入阵列中。我不知道我得到了多少个参数(可能是10个,但也可能是10000个) 那么,如何告诉数组需要多少空间,以及如何将参数放入其中 它总是x和y坐标,所以我有两个数组 这是我已经尝试过的代码。我有数组的硬编码参数,只是为了看看它是否工作 在java代码下面,我发布了html代码,其中是我想要添加到数组中的参数 import java

在我的大学里,我必须做一个项目,其中包括一个部分,我必须用Java调整我自己的坐标系统,它必须是动态的,还有一个小程序

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

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

它总是x和y坐标,所以我有两个数组

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

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