我有一个需要按升序排序的Vector,因为我仍然是一个初学者,我发现稍微努力使这项工作,我一直在尝试使用insertElementAt和compareTo,但我没有管理。任何人都可以帮忙吗?
答案 0 :(得分:0)
您应该根据您对矢量的排序来确定一个标准。你不能只比较两个对象,你应该选择“价格”或“代码”等,并根据该值比较你的对象
答案 1 :(得分:0)
您可以采取两种方法:
让Product
类实现Comparable
接口。这样,您就可以实现compareTo
方法,该方法是排序操作的基础。此方法定义排序,因为它通过返回正int
,零或负int
来确定哪个元素更高哪个元素更低
实施您自己的Comparator
。比较器定义了一种比较方法,它将两个元素作为基础,并以compareTo
的方式进行比较。这里的优点是您可以通过使用不同的Comparator
订购来切换订购标准。
最后,可以使用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);
}
}