【发布时间】:2014-05-05 08:40:26
【问题描述】:
我有一个ArrayList<CustomObject> myFinalList = new ArrayList<CustomObject>();
该列表对列表中的每个条目都有一个 ojbect 属性“NumberOfLikes”。 "NumberOfLikes" 是字符串值。
我已经将这些值派生到一个数组中,如下所示:-
ArrayList<String> numberOfLikes = new ArrayList<String>();
for(int j =0; j<myFinalList.size(); j++)
{
String likes = myFinalList.get(j).getNewsLikes();
numberOfLikes.add(likes);
}
numberofLikesArray= numberOfLikes.toArray(new String[numberOfLikes.size()]);
int[] numberofLikesArrayInt = new int[numberofLikesArray.length];
for (int n = 0; n < numberofLikesArray.length; n++)
{
numberofLikesArrayInt[n] = Integer.parseInt(numberofLikesArray[n]);
}
Arrays.sort(numberofLikesArrayInt);
ArrayList<Integer> intAarrylistlikes = new ArrayList<Integer>();
for (int i = 0; i < numberofLikesArrayInt.length; i++)
{
intAarrylistlikes.add(numberofLikesArrayInt[i]);
}
Collections.reverse(intAarrylistlikes);
numberofLikesArrayInt = convertIntegers(intAarrylistlikes);
numberofLikesArray = Arrays.toString(numberofLikesArrayInt).split("[\\[\\]]")[1].split(", ");
for (int i = 0; i < numberofLikesArray.length; i++)
{
companyNewsList = Lists.newArrayList(Collections2.filter(myFinalList, new ArticleFilter2(numberofLikesArray[i])));
}
ArticleFilter2.java
public class ArticleFilter2 implements Predicate<News>
{
private final Pattern pattern;
public ArticleFilter2(final String regex)
{
pattern = Pattern.compile(regex);
}
@Override
public boolean apply(final CustomObject input)
{
return pattern.matcher(input.getLikes()).find();
}
}
现在这个数组由“NumberOfLikes”按降序排列。现在我想创建另一个 ArrayList,它根据这些值对“MyFinalList”进行排序,即:- 具有最大喜欢的项目应该首先出现。
我该怎么做?
【问题讨论】:
-
是否可以为 CumstomObject 类添加 numberOfLikes 的属性(getter 和 setter)?
-
@Bob 是的。我已经设置了 getter 和 setter
-
然后就可以使用AndroidGuys awnser对列表进行排序了。
标签: java android arrays sorting arraylist