如何在JavaME中对字符串向量进行排序?
我有一个整数向量(数据库表的主键);我实现了一个基于这个主键整数返回字符串的方法。我的问题是我想把这些字符串放到一个向量中,它们在向量中被“排序”。如何实现此字符串排序?您可以使用如何在JavaME中对字符串向量进行排序?,java,java-me,sorting,Java,Java Me,Sorting,我有一个整数向量(数据库表的主键);我实现了一个基于这个主键整数返回字符串的方法。我的问题是我想把这些字符串放到一个向量中,它们在向量中被“排序”。如何实现此字符串排序?您可以使用树集,该树集将保持字符串的排序顺序,或者在返回字符串之前使用类似的方法: Collections.sort(yourVector); 另一种方法是要求数据库按主键排序。让数据库来完成这项工作 您的查询返回的可能不止是主键。我想知道为什么要在字符串和主键的原始级别上处理事情。我敢打赌你对物体的思考不够。如果有主键,其他
树集
,该树集将保持字符串的排序顺序,或者在返回字符串之前使用类似的方法:
Collections.sort(yourVector);
另一种方法是要求数据库按主键排序。让数据库来完成这项工作
您的查询返回的可能不止是主键。我想知道为什么要在字符串和主键的原始级别上处理事情。我敢打赌你对物体的思考不够。如果有主键,其他数据应该紧随其后。我会将它们封装在一起,并担心如何对这些对象进行排序
为什么向量?我更喜欢ArrayList
,因为默认情况下它是不同步的。更好的性能。将向量传递给静态方法集合。排序(向量)
不确定要如何排序,但此方法将根据向量中包含的对象的自然顺序进行排序,该顺序由每个对象的比较方法给出
可能可以进一步帮助您。如果是Java,您正在寻找
Collections.sort(vector);
?您需要通过实现接口来实现自己的比较器
像这样的事情应该可以做到:
Collections.sort(vect, new Comparator() {
public int compare(Object a, Object b) {
return ( new Integer(((MyClass) a).getNumber()) ).compareTo( new Integer(((MyClass) b).getNumber()));
}
});
取自。Vector比ArrayList慢,因为它是线程安全的集合
但是,排序操作不是线程安全的。因此,要以线程安全的方式对向量进行排序,需要对其进行同步
synchronized(vector) {
Collections.sort(vector);
}
如果您不需要该集合是线程安全的,请考虑使用ARARYList.< /P> <代码>导入java. UTIL向量;
import java.util.Vector;
import java.util.Collections;
public class SortJavaVectorExample {
public static void main(String[] args) {
//create Vector object
Vector v = new Vector();
//Add elements to Vector
v.add("1");
v.add("3");
v.add("5");
v.add("2");
v.add("4");
/*
To sort a Vector object, use Collection.sort method. This is a
static method. It sorts an Vector object's elements into ascending order.
*/
Collections.sort(v);
//display elements of Vector
System.out.println("Vector elements after sorting in ascending order : ");
for(int i=0; i<v.size(); i++)
System.out.println(v.get(i));
}
}
导入java.util.Collections;
公共类SortJavaVectore示例{
公共静态void main(字符串[]args){
//创建向量对象
向量v=新向量();
//向向量添加元素
v、 添加(“1”);
v、 添加(“3”);
v、 添加(“5”);
v、 添加(“2”);
v、 添加(“4”);
/*
要对向量对象进行排序,请使用Collection.sort方法
静态方法。它将向量对象的元素按升序排序。
*/
收集.分类(五);
//矢量的显示元素
System.out.println(“升序排序后的向量元素:”);
对于(inti=0;i,使用以下代码在JavaME中对向量进行排序
public Vector sort(Vector sort) {
Vector v = new Vector();
for(int count = 0; count < e.length; count++) {
String s = sort.elementAt(count).toString();
int i = 0;
for (i = 0; i < v.size(); i++) {
int c = s.compareTo((String) v.elementAt(i));
if (c < 0) {
v.insertElementAt(s, i);
break;
} else if (c == 0) {
break;
}
}
if (i >= v.size()) {
v.addElement(s);
}
}
return v;
}
公共向量排序(向量排序){
向量v=新向量();
对于(int count=0;count=v.size()){
v、 增编;
}
}
返回v;
}
您可以使用Collections类,该类将按排序顺序保存字符串,也可以在返回字符串之前使用类似的方法:
如果要按升序排序,请仅使用
Collections.sort(将您的……列表/ARRAYLIST/VECTOR对象放在这里);
如果要按降序排序,请仅使用
**排序(将您的…列表/ARRAYLIST/VECTOR对象放在这里)**
**Collections.reverse(将您的…列表/ARRAYLIST/VECTOR对象放在这里);**OP没有指定键的排序方式,我发布了这个,以防默认键不起作用。别忘了添加参考链接:嘿,伙计们,他在问java me。java me从不支持集合。@Andy:1的问题问得很清楚。因为每个人都认为你是在问java。试着正确地发布。