如何反转ArrayList

时间:2014-08-28 11:29:17

标签: java android arrays sorting

我需要撤消我的内容列表。我找到Collections.reverse(temp);,但不知道如何正确实施。

private class MyFilter extends Filter {

    @Override
    protected FilterResults performFiltering(CharSequence constraint) {

        FilterResults oReturn = new FilterResults();
        ArrayList<Advice> results = new ArrayList<Advice>();

        if (orig == null)
            orig = list;

        if (constraint != null) {
            if (orig != null) {
                for (Advice d : orig) {
                    if ((d.getTitle() + " " + d.getText()).toLowerCase()
                            .contains(constraint.toString())) {
                        results.add(d);
                    }
                }
            }
        }

        list = results;

        return oReturn;
    }

    @Override
    protected void publishResults(CharSequence constraint,
            FilterResults results) {
        notifyDataSetChanged();
    }
}

5 个答案:

答案 0 :(得分:3)

简单地:

  // Create the list
  ArrayList<String> myList = new ArrayList<String>();

  // Add some items to it
  myList.add("one");
  myList.add("two");
  myList.add("three");

  // Reverse it by using Collections utilities.
  Collections.reverse(myList);

  Log.i("DEBUG", myList.get(0)); // Should print 'three' 

答案 1 :(得分:1)

您应该导入

import java.util.Collections;

然后使用

Collections.reverse(results);

答案 2 :(得分:1)

如果要添加符合条件的元素,并且没有java8或任何函数库,则可以在构造循环后将其反转,或者在遍历之前反转原始元素。或者在施工期间以相反的顺序遍历它。使用索引的示例:

for(int i = orig.size()-1; i >-1; i--) {
    //add matching elements to the newly constructed list.
}

答案 3 :(得分:1)

更改您的代码如下: 私有类MyFilter扩展了Filter {

@Override
protected FilterResults performFiltering(CharSequence constraint) {

    FilterResults oReturn = new FilterResults();
    ArrayList<Advice> results = new ArrayList<Advice>();

    if (orig == null)
        orig = list;

    if (constraint != null) {
        if (orig != null) {
            for (Advice d : orig) {
                if ((d.getTitle() + " " + d.getText()).toLowerCase()
                        .contains(constraint.toString())) {
                    results.add(d);
                }
            }
        }
    }

    Collections.reverse(results);
    oReturn.values = results;
    oReturn.count = results.size();

    return oReturn;
}

@Override
protected void publishResults(CharSequence constraint,
        FilterResults results) {
    notifyDataSetChanged();
}

}

希望它会有所帮助

答案 4 :(得分:0)

解析器添加的最佳方式:

Collections.reverse(data);
System.out.println(data.toString());