有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何反转ArrayList

我需要撤销我的内容列表。我找到了^{,但不知道如何正确地实现它

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) 个答案

  1. # 1 楼答案

    添加解析器的最佳方式:

    Collections.reverse(data);
    System.out.println(data.toString());
    
  2. # 2 楼答案

    更改代码如下: 私有类MyFilter扩展了筛选器{

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

    }

    希望能有所帮助

  3. # 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' 
    
  4. # 4 楼答案

    你应该进口

    import java.util.Collections;
    

    然后使用

    Collections.reverse(results);
    
  5. # 5 楼答案

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

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