2014-11-12 20 views
6

Ich versuche Arrf erweiterte Ausgabedatei von einem mehrdimensionalen Array in Java zu erhalten. Und ich habe die Weka-Bibliothek importiert, aber ich habe einen Fehler bekommen. The type FastVector<E> is deprecated.Der Typ FastVector <E> ist veraltet

Was kann ich anstelle von FastVector verwenden und wie kann ich den folgenden Code umschreiben?

import weka.core.FastVector; //Error: The type FastVector<E> is deprecated. 


    int [][] myArray = new int[45194][12541]; 

    for (int i = 0; i < myArray.length; i++) { 
     for (int j = 0; j < myArray[0].length; j++) { 
      System.out.print(myArray[i][j]+" "); 
     } 
     System.out.println(""); 
    } 

    int numAtts = myArray[0].length; 
    FastVector atts = new FastVector(numAtts); 
    for (int att = 0; att < numAtts; att++) { 
     atts.addElement(new Attribute("Attribute" + att, att)); 
    } 

    int numInstances = myArray.length; 
    Instances dataset = new Instances("Dataset", atts, numInstances); 
    for (int inst = 0; inst < numInstances; inst++) { 
     dataset.add(new Instance(1.0, myArray[inst])); //Error: Cannot instantiate the type Instance 
    } 

    BufferedWriter writer = new BufferedWriter(new FileWriter("test.arff")); 
    writer.write(dataset.toString()); 
    writer.flush(); 
    writer.close(); 

Antwort

13

Weka verwendet jetzt typisierte ArrayLists die meisten Orte. Sie können ArrayList<Attribute> dafür verwenden:

ArrayList<Attribute> atts = new ArrayList<Attribute>(); 
    for (int att = 0; att < numAtts; att++) { 
     atts.add(new Attribute("Attribute" + att, att)); 
    } 
+2

Ja, ich sehe das, aber wie kann ich ArrayList in Code oben verwenden? – EngineerEngin

+0

Ich habe meine Antwort mit einem Code-Snippet bearbeitet. Es sollte so einfach sein, wie den Typ der atts-Variablen zu ändern. – Chris

+0

Danke, es funktioniert. Der FastVector-Fehler ist verschwunden. – EngineerEngin