【问题标题】:Code to read the dataset读取数据集的代码
【发布时间】:2014-04-01 01:28:12
【问题描述】:

这里我读取数据集并提取数据行(不是属性)并打印它。接下来我需要对数据集进行排序。现在存储在 ArrayList 中。如何排序?

public static void main(String args[]) throws Exception 

{
    String filen, jsnfl;
    Customiseddata data = new Customiseddata();
    data.setAlgorithm("C4.5");
    data.setUserName("Dahlia");

    System.out.println("Enter the file name");
    sc = new Scanner(System.in);
    filen = sc.nextLine();
    data.setFileName("input_files/" + filen);
    Mainclass main = new Mainclass();
    main.build(data);
}



public void build(Customiseddata data) throws Exception 
{
        int extension;
        String filename;
        filename = data.getFileName();
        extension = filename.lastIndexOf('.');
        String extensionType = filename.substring(extension + 1,
                filename.length());
        if (extensionType.equalsIgnoreCase("csv")) 
        {
            readcsv(filename);
        }

        else if (extensionType.equalsIgnoreCase("arff")) 
        {
            readarff(filename);
        }
}
public void readarff(String filename) throws Exception
{
    @SuppressWarnings("unused")
    int filesize, attributesize, c = 0, i;
    @SuppressWarnings("unused")
    float v = 0;
    String s, line1;
    ArrayList<String> filelines;
    ArrayList<String> attributes;
    Customiseddata data = new Customiseddata();

    Arfffilereader arfffile = new Arfffilereader();
    Extractdata exdata = new Extractdata();
    exdata = arfffile.extractInputArff(filename);

    filelines = exdata.getFileLines();
    attributes = exdata.getAttributes();
    filesize = filelines.size();
    attributesize = attributes.size();
    data.setFilesize(filesize);
    System.out.println("Print the attributes");
    System.out.println("--------------------");
    for (i = 0; i < attributesize; i++) 
            {
        System.out.println(attributes.get(i));
    }
    System.out.println("\t");
    System.out.println("Print the filelines");
    System.out.println("--------------------");
    for (int j = 0; j < filesize; j++) 
            {
        System.out.println(filelines.get(j));
    }
}

但在此之后我需要对数据集进行排序。

【问题讨论】:

  • ...你到底在问什么?
  • 这里我只是读取和打印数据集。但是我想对数据集进行排序。
  • 你尝试排序了吗?

标签: java decision-tree


【解决方案1】:

由于列表的元素是Strings 并且由于String 实现了Comparable,因此对列表进行排序很简单:

Collections.sort(theList);

但请注意,它会对列表进行排序。如果您不希望这样,请复制一份列表并对该副本进行排序。

【讨论】:

  • 如果列表是连续的,方法是什么?
  • 连续是什么意思?
  • 例:5.1,4.9,8.6,7.5,1.4,.........每一列都这样。我需要对每一列进行排序。如何?
  • 好的,那么列表中到底有什么?这些数字作为字符串?您想使用数值排序吗?
  • 它可能是最早的例子,但数字。
猜你喜欢
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 2020-10-25
  • 2019-02-18
  • 1970-01-01
相关资源
最近更新 更多