GWT ComboBox时间顺序

时间:2011-01-14 17:29:59

标签: java gwt arraylist

我有GWT ComboBox小部件(ListBox + TextBox)。用户可以在此小部件中输入一些文本,或者通过单击下拉箭头从以前存在的文本列表中进行选择。

所以,我有一个ArrayList,当用户输入文本并单击“搜索按钮”时,如果输入的文本存在于ArrayList中,我执行搜索,如果它不存在,我将文本添加到ArrayList。

然后当我需要在View中显示ComboBox时,我正在迭代我的ArrayList并将Arraylist中的每个String添加到ComboBox。

组合框中显示值的方式不是按时间顺序排列的。最新输入的文本位于ComboBox的底部。如何按时间顺序制作?

我可以反转列表并将其添加到我的ComboBox.But当用户选择已存在的文本时,问题是。(我可以将ArrayList子列表,将所选项目推到顶部并进行调整子列表并将其添加回主ArrayList,但我觉得它太长而且无效)

那么对于我正在使用的数据结构(ArrayList)有什么建议吗?哪个可以让我的工作更容易?

很抱歉过于精心制作,但我总觉得最好不要这样做。

1 个答案:

答案 0 :(得分:1)

此示例代码是否以您希望的方式管理标准列表:

import java.util.*;
public class ListManager {

public static void main(String[] args) {
    String[] items = {"snow", "rain", "ice", "sleet", "ice", "sunny"};
    List<String> criteriaList = new ArrayList<String>();
    String criteria;
    for (String newCriteria : items) {
        if (criteriaList.remove(newCriteria)) {
            System.out.println(newCriteria + " was in the list already");
        }
        criteriaList.add(0, newCriteria);
        System.out.println();
        System.out.print("List is: ");
        for (String x : criteriaList) {
            System.out.print(x +"  ");
        }
        System.out.println();
    }
}

}

输出结果为:

列表是:雪

列表是:雨雪

列表是:冰雨雪

列表是:雨夹雪冰雨

冰已经在列表中

列表是:冰雨雪雨

列表是:晴天冰雨夹雪雨