2014-08-28 30 views
-2

我需要反轉我的內容列表。我發現Collections.reverse(temp);,但不知道如何正確實施它。如何反轉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(); 
    } 
} 
+0

什麼類型的收集器正在使用? – 2014-08-28 11:34:26

+0

你有一個集合(前列表的列表)。你有沒有嘗試使用'Collections.reverse(list);'? – Alexmelyon 2014-08-28 11:36:36

+0

atleast發佈您的列表代碼。 – 2014-08-28 11:38:18

回答

1

你應該導入

import java.util.Collections; 

然後用

Collections.reverse(results); 
+0

它不工作,只有當我去POST,然後單擊返回。請顯示請在我的代碼中使用它。謝謝 – 2014-08-28 11:41:12

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' 
+0

它不工作,只有當我去POST,然後單擊返回。請顯示請在我的代碼中使用它。謝謝 – 2014-08-28 11:41:34

+0

這取決於你。你在問你的應用程序特定的代碼。我的回答完全符合你的要求。我們不知道什麼是「POST」或「返回」 – Jitsu 2014-08-28 11:43:13

1

如果你想添加符合條件的元素而你不知道沒有java8或任何功能庫,您可以在構建循環之後將其逆轉,或者在遍歷之前顛倒原始位置。或者只是在施工過程中以相反的順序進行運行。使用索引的一個例子:

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

如下更改代碼: 私有類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(); 
} 

}

希望這將有助於

0

的最佳途徑解析器添加:

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