【发布时间】:2014-04-25 18:18:04
【问题描述】:
我正在尝试根据动态变化的键对对象的 ArrayList 进行排序。
public class My Objects {
public String name;
public int id;
}
String[] nameKeys = {"key1", "key2", "key3"};
ArrayList<MyObjects> ObjectArray = new ArrayList<MyObjetcs>();
现在我想使用在“keys”变量中找到的任何键对 ObjectArray 进行排序。 用户将决定使用哪个密钥。
我已经为此困扰了几个小时,所以如果我能得到任何帮助,我将不胜感激。 谢谢
编辑:
ObjectArray.add( new MyObjects("key1", 1);
ObjectArray.add( new MyObjects("randomname", 2);
ObjectArray.add( new MyObjects("anothername", 3);
ObjectArray.add( new MyObjects("key1", 4);
sort("randomname", ObjectArray); //What I'd like to be able to do
for( MyObjects ob : ObjectArray)
area.append(ob.name+"->"+ob.id+"\n");
Result:
randoname->2
key1->1
key1->4
anothername->3
第二次编辑: 我从一开始就想解决这个问题。感谢大家的帮助。
【问题讨论】:
-
该示例是否意味着您希望提供的键是第一个,其他的 - 按字典顺序排序?
-
考虑一下当您向
ObjectArray:ObjectArray.add(new MyObjects("xkey", 5);添加额外元素时会发生什么。应该排在"randomname"之后还是之前? -
@AlexeyMalev 不完全是。相反,它根据第一个字母排序,如果两个单词以相同的字母开头,它会查看第二个字母,依此类推。
-
@user3574052 对不起,我不明白。 “r”作为第一个字母在“k”之前..
-
尽管如此,我还是在我原来的想法中发现了一个漏洞。你是绝对正确的,现在我意识到为什么这篇文章如此令人困惑。感谢您的回答,它又回到了绘图板上。