首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java-me中对字符串的向量进行排序?

如何在java-me中对字符串的向量进行排序?
EN

Stack Overflow用户
提问于 2011-07-04 17:13:40
回答 8查看 13.4K关注 0票数 2

我有一个Vector of Integer (数据库表的主键);我实现了一个方法,它根据这个主键Integer返回一个字符串。我的问题是,我想把这些字符串放到一个Vector中,它们在Vector中被“排序”。如何实现这种字符串排序?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-07-04 19:13:16

使用以下代码对java-me中的向量进行排序。

代码语言:javascript
复制
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;
    }
票数 7
EN

Stack Overflow用户

发布于 2011-07-04 17:17:09

您可以使用TreeSet,它将保持字符串的排序顺序,或者在返回它们之前使用类似以下内容:

代码语言:javascript
复制
Collections.sort(yourVector);

另一种选择是要求数据库按主键排序。让数据库来完成这项工作。

您的查询可能返回的不只是主键。我想知道为什么您要在String和主键的原始级别上处理事情。我敢打赌,你对对象的思考还不够充分。在有主键的地方,其他数据应该紧随其后。我会将它们封装在一起,并考虑如何对这些对象进行排序。

为什么是Vector?我更喜欢ArrayList,因为默认情况下它不是同步的。更好的性能。

票数 3
EN

Stack Overflow用户

发布于 2011-07-04 17:18:54

您需要通过实现Comparator接口来实现您自己的比较器。

下面这样的代码应该能起到作用:

代码语言:javascript
复制
Collections.sort(vect, new Comparator() {
  public int compare(Object a, Object b) {
    return ( new Integer(((MyClass) a).getNumber()) ).compareTo( new Integer(((MyClass) b).getNumber()));
  }
});

摘自here

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6569414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档