我试图用自定义适配器填充RecycraView。此适配器接受具有setters和getters的模型。此模型包含三个参数:String username、int proPic和int bckgImg。我试图实现的是一个回收站视图与字母排序列表。我使用以下代码填充模型:
private ArrayList<FriendsModel> friendsData = new ArrayList<>(0);
friendsData.add(new FriendModel("Erick", R.drawable.default_pro_pic, R.drawable bckgImg);
填充完FriendModel的5个对象后,我继续比较ArrayList中的字符:
for(char alph = 'A'; alph <= 'Z'; alph++){
List<String> friends = getFriends(alph);
if(friends.size() > 0){
//Populate the Sorted Alphabetical view
}
}
private List<String> getFriends(char alph) {
//Empty List used to populate when comparing existing model to alphabet
List<String> friends = new ArrayList<>();
//5 objects of FriendsData with three parameters
for (int i = 0; i < friendsData.size(); i++){
//If the first string parameter character at position 0 is equal to alph
if(friendsData.get(i).toString().charAt(0) == alph){
friends.add(friendsData.get(i).toString());
}
}
return friends;
}
我不确定如果我这样做是正确的,什么是适当的或正确的方法来比较基于其模型的ArrayList中的字符?
使用模型对列表进行排序的正确方法是定义比较器。对于当前的示例,您使用了use。
Collections.sort(friendsData, new Comparator<FriendsModel>() {
@Override
public int compare(FriendsModel obj1, FriendsModel obj2) {
return obj1.getUsername.compareTo(obj2.getUsername); //For Ascending order
//OR
return obj2.getUsername.compareTo(obj1.getUsername); //For Descending order
}
});
“compare”函数比较其两个参数的顺序。返回负整数、零或正整数,因为第一个参数小于、等于或大于第二个参数。
自定义比较器应该有所帮助
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
或者如果它不起作用,那就让我们来吧
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
不要使用构造函数来初始化变量,总是使用setter方法,这样的类也被称为pojo(普通的旧java对象)或VO(值对象)。
假设您的FriendModel类如下所示。。
public class FriendModel{
String username;
int proPic;
int bckgImg;
public FriendModel(){}
//redundant constructor, you can remove this since you are using setter methods now.
public FriendModel(String username, int proPic, int bckgImg){
this.username=username;
this.proPic=proPic;
this.bckgImg=bckgImg;
}
//you'll need the below getters and setters..
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getProPic() {
return proPic;
}
public void setProPic(int proPic) {
this.proPic = proPic;
}
public int getBckgImg() {
return bckgImg;
}
public void setBckgImg(int bckgImg) {
this.bckgImg = bckgImg;
}
}
无论你在哪里做以下事情,
for(char alph = 'A'; alph <= 'Z'; alph++){
List<String> friends = getFriends(alph);
if(friends.size() > 0){
//Populate the Sorted Alphabetical view
}
}
private List<String> getFriends(char alph) {
//Empty List used to populate when comparing existing model to alphabet
List<String> friends = new ArrayList<>();
//5 objects of FriendsData with three parameters
for (int i = 0; i < friendsData.size(); i++){
//If the first string parameter character at position 0 is equal to alph
String username=friendsData.get(i).getUsername(); //get the username
if(username.charAt(0) == alph){ //compare the username with charater in alph variable
friends.add(username); //add in another list
}
}
return friends;
}
我试图将输入与arraylist中的值进行比较。 前任;我有一个arraylist: 数组的每个索引在我的程序中代表一个唯一的属性。e、 g索引0代表,索引1代表等。如果我做返回第二个数组。 我正在尝试将与每个数组中的第二个元素进行比较。所以假设我运行这个,我希望它遍历每个数组中的每个[1],如果该索引匹配,则返回true。 因此,我希望它将'number'(1102)与每个第一个索引元素进行比较
嗨,我需要打印我的最高工资的人的方法。我有女巫雇员和女巫学生名单。当学生的平均成绩在4.5分以上时,他可以得到500英镑的薪水。 我有这样方法: 这是Person类: 这是学生课堂: 我需要的方法为最好的支付的人和方法总和所有人的收入。
如何比较两个列表是否相等验证数据来自Excel工作表。我需要验证两个列表是否相同,并且列表中没有附加元素或缺少元素。我不需要对列表进行排序。打印输出CAGID Excel data=CAGID Web列表
我一直认为numpy数组比list更紧凑,占用的内存更少,但是,对于三维float64 np数组, 输出是,, 列表占用的内存要小得多。使用?如果是,我能做些什么来提高np数组内存使用率吗? ###################### 使用pympler@J_H(pympler似乎不能处理列表中的数组,比如list(一个3-D数组) 谢谢大家!!
我有以下数组列表 现在我需要比较这两个数组,并检查是否有id中的任何值存在于empIds中。如果是,我需要以布尔值true退出。我是这样做的。 但这需要很多时间。有人能帮我优化一下吗?
问题内容: 我是Java的新手:) 我有2个字符串列表,我想知道比较这两者的最有效方法是什么,并得到一个包含另一个字符串的结果数组。例如,我有一个名为oldStrings的列表和一个名为Strings的列表。我已经看过Comparator函数,但是还不完全了解它的工作原理,现在我想我可以创建一个for循环,遍历每个字符串,然后保存该字符串: 此列表中最多包含200个字符串。这是解决此问题的最佳方法
我正在尝试编写一个日历。我将我的约会保存在另一个ArrayList中的两个不同的ArrayList中。 字符串(Subject,Place,People)进入另一个ArrayList=arstr中的第一个ArrayList 整数(Date和Time)进入另一个ArrayList=arInt中的第二个ArrayList 当我创建约会时,我希望根据日期对其进行排序。所以如果我想添加一个新的约会,它应该
我必须将元组与元组列表进行比较,如果整数小于列表中的任何元组,则返回True。例如,如果我有将返回True,因为单独元组(“番茄”,10,5)中的整数比列表中的元组(“橙色”,11,6)小,但是如果我有将返回False。 我试试这个 但不工作时,它应该返回假,我不知道为什么? 注意:字符串对于这个问题并不重要,我必须忽略它。