java - GWT 组合框按时间顺序排列

标签 java gwt arraylist

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

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

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

组合框中值的显示方式不是按时间顺序排列的。最新输入的文本位于组合框的底部。我怎样才能使其按时间顺序排列?

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

那么对于我正在使用的数据结构(ArrayList)有什么建议吗?这可以让我的任务更轻松?

抱歉说得太详细了,但我总觉得有总比没有好。

最佳答案

此示例代码是否按照您想要的方式管理条件列表:

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();
    }
}

}

输出为:

列表是:雪

列表是:雨雪

列表为:冰雨雪

列表为:雨夹雪冰雨雪

ice 已经在列表中

列表为:冰雨夹雪

列表为:晴天冰雨夹雪

关于java - GWT 组合框按时间顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4693994/

相关文章:

java - 在 iOS-Objective C 上签名的数据在 Java 中验证时始终返回 false

java - 如何将这种图存储在 neo4j 中以便快速遍历?

gwt - 如何在 Vaadin 应用程序中包含 Iframe?

mysql - 将 Swing 应用程序与 Tomcat 集成

java - 为什么我们 addAll(Collection) 而不是 Iterable?

java - 在 Spring 中使用 System 覆盖属性

java - 测试使用私有(private)静态类的对象列表的方法

java - 编译 GinjectorImpl.java 时,GWT 开发模式抛出 ArrayIndexOutOfBoundsException

java - 如何同步访问 Java Hashmap 中的值?

java - 对双数组列表进行插入排序,第一项未排序