java - 如何选择 ArrayList<List> 中列表的哪一列用于对 ArrayList 进行排序?

标签 java sorting arraylist compare

我想对包含多个列表的 ArrayList 进行排序。换句话说,我有一个 ArrayList,我想根据内部列表的元素之一对其进行排序。 例如以下列表中的标签: [[那个,IN,157],[那个,WDT,69],[那个,DT,33]]

我希望能够选择用于排序的列。我想使用下面的代码。但是,它不接受内部方法的输入变量 i。

public void sortCheckedTags(int i){

    Collections.sort(checkedTags, new Comparator<List>(){
        public int compare(List  item1, List  item2)
        {
            return  ((String)item1.get(i)).compareTo(((String)item2.get(i)));
        }
    });
}

有什么建议吗?

最佳答案

像这样声明你的方法:

public void sortCheckedTags(final int i)

您可以查看 anonymous inner classes 上的文档:

An anonymous class cannot access local variables in its enclosing scope that are not declared as final or effectively final.

关于java - 如何选择 ArrayList<List> 中列表的哪一列用于对 ArrayList 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22747818/

相关文章:

java - 将 ArrayList<String> 转换为 String[]

java - 对由combineByKey 函数生成的rdd 进行调用后,对collect() 的调用不会返回

java - 当应用程序服务器失去互联网连接时维持服务的机制

c - 合并两个已排序数组的困难

java - 在不断缩小的 LispList 中递归查找 INT 的索引

java - 将数组列表中的对象添加到类的实例中

java - OWLOntologyWalkerVisitor 类型不是泛型 : Error using OWL API in Eclipse

java - 选择排序方法错误,类型不兼容

sorting - 最快的插入/排序数据结构

java - T 是测试用例的数量。N 是数组的大小,k 是数组右旋转的次数。如何在 java 中执行此操作