我有一个字符串列表,我需要确保一个特定元素始终位于列表中的第一个位置。这是一个例子。假设我的列表包含[sicav action,droits de souscription, famille action ,fcp actions]。我需要确保' famille action'在列表上进一步处理之前,它始终位于第一个位置。
我是这样做的:
/**
* Force this list to alway keep the constrained value on top
* @param liste
* @param constraint
*/
public void doConstrainList(List<String> liste, String constraint) {
System.out.println("List initial state: " + liste);
if (!liste.contains(constraint)) {
return;
}
int indexToProcess = liste.indexOf(constraint);
String keeper = constraint;
liste.remove(indexToProcess);
liste.add(0, keeper);
System.out.println("List state after processing:" + liste);
}
当我使用上面提到的列表示例为相同的约束值调用此方法时,我获得以下结果
所以这是按预期工作的,但我想知道是否有更好的方法来做到这一点。有可能这个名单会继续增加,我不希望这种方法是时间消耗。我使用的是Java 1.6,我不能使用更新的Java版本。谢谢你的帮助
答案 0 :(得分:1)
我认为您可以通过重构代码来节省一些处理时间:
public void doConstrainList(List<String> liste, String constraint) {
System.out.println("List initial state: " + liste);
if (liste.remove(constraint)) {
liste.add(0, constraint);
}
System.out.println("List state after processing:" + liste);
}