按升序排序向量并保存到文本文件

时间:2013-03-13 17:38:52

标签: java sorting text vector save

我有一个需要按升序排序的Vector,因为我仍然是一个初学者,我发现稍微努力使这项工作,我一直在尝试使用insertElementAt和compareTo,但我没有管理。任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

您应该根据您对矢量的排序来确定一个标准。你不能只比较两个对象,你应该选择“价格”或“代码”等,并根据该值比较你的对象

答案 1 :(得分:0)

您可以采取两种方法:

  1. Product类实现Comparable接口。这样,您就可以实现compareTo方法,该方法是排序操作的基础。此方法定义排序,因为它通过返回正int,零或负int来确定哪个元素更高哪个元素更低

  2. 实施您自己的Comparator。比较器定义了一种比较方法,它将两个元素作为基础,并以compareTo的方式进行比较。这里的优点是您可以通过使用不同的Comparator订购来切换订购标准。

  3. 最后,可以使用Collections#sort的任何重载来执行排序,这些重载将您的集合作为参数,如果您决定使用它,则可以使用Comparator

答案 2 :(得分:0)

根据code使Product类可排序。您可以为Product类实现Comparable接口并覆盖compareTo方法。那么你的Product课程就像这样:

import java.util.*;
class Product implements Comparable<Product>
{
    String desc, code, phrase;
    double price;

    public Product()
    {
        this.desc = "";
        this.code = ""; // later on irid jinbidel
        this. price = 0.0; 
        this.phrase = "";   
    }
    public Product(String desc, String code, String phrase, double price){
        this.desc = desc;
        this.code = code; // later on irid jinbidel
        this. price = price; 
        this.phrase = phrase;
    }
    @Override
    public String toString(){
        return code;//+", "+desc+", "+price+", "+phrase+".";

    }
    @Override
    public int compareTo(final Product obj) {
        return code.compareTo(obj.code);
    }
}

测试是否正确排序这里是简单的演示:

public class TestProduct
{
    public static void main(String[] st)
    {
        Vector<Product> v = new Vector<Product>();
        for (int i = 9 ; i > 0 ; i-- )
        {
            v.add(new Product("MyProduct",i+"Product","Good Product",34.5));
        }
        System.out.println("Before sorting");//Records inserted in decreasing order of code.
        System.out.println(v);
        Collections.sort(v);
        System.out.println("After sorting");//Records showing in increasing order of code.
        System.out.println(v);
    }
}