我有一些对象person (int age; String name;).
如何按名称和年龄按字母顺序对此数组进行排序?
您会使用哪种算法?
我有一个字符串arraylist names,其中包含人的名字.我想按字母顺序对arraylist进行排序.
ArrayList<String> names = new ArrayList<String>();
names.add("seetha");
names.add("sudhin");
names.add("Swetha");
names.add("Neethu");
names.add("ananya");
names.add("Athira");
names.add("bala");
names.add("Tony");
names.add("Karthika");
names.add("Nithin");
names.add("Vinod");
names.add("jeena");
Collections.sort(names);
for(int i=0; i<names.size(); i++)
System.out.println(names.get(i));
Run Code Online (Sandbox Code Playgroud)
我尝试以上述方式对列表进行排序.但是它将排序的数组显示为:
Athira
Karthika
..
..
ananya
bala
...
Run Code Online (Sandbox Code Playgroud)
但我不想让它区分大小写.我希望结果如下:
ananya
Athira
bala
Run Code Online (Sandbox Code Playgroud) 我试图通过对象内的特定值对对象的arraylist进行排序.做这样事情的最佳方法是什么.我应该使用Collections.sort()与某种比较器?
我试图按照它们在其中一个变量中保存的浮点值对对象列表进行排序.
编辑:这是我到目前为止:
public class CustomComparator implements Comparator<Marker> {
@Override
public int compare(Mark o1, Mark o2) {
return o1.getDistance().compareTo(o2.getDistance());
}
}
Run Code Online (Sandbox Code Playgroud)
错误状态:无法在基本类型double上调用compareTo(double).
是因为比较器不能返回除某种类型以外的任何东西吗?
我制作了一个jsonobjects的jsonarray.现在我需要根据jsonobjects中的值对JSONArray进行排序.以前我对自定义对象的ArrayLists进行了排序,如下所示:
比较:
public class KreeftenComparatorLA implements Comparator<Kreeft> {
public int compare(Kreeft left, Kreeft right) {
return left.latijnseNaam.compareTo(right.latijnseNaam);
}
}
public class KreeftenComparatorNL implements Comparator<Kreeft> {
public int compare(Kreeft left, Kreeft right) {
return left.naam.compareTo(right.naam);
}
}
Run Code Online (Sandbox Code Playgroud)
然后对arraylist进行排序:
Collections.sort(db.lijst, new KreeftenComparatorLA());
Run Code Online (Sandbox Code Playgroud)
要么:
Collections.sort(db.lijst, new KreeftenComparatorNL());
Run Code Online (Sandbox Code Playgroud)
但是当我像JSONArray那样尝试同样的事情时(JA =我的jsonarray)
Collections.sort(JA, new KreeftenComparatorNL());
Run Code Online (Sandbox Code Playgroud)
Collections.sort给出错误:
类型集合中的方法sort(List,Comparator)不适用于参数(JSONArray,ThisActicity.KreeftenComparatorNL)
有人知道如何对JSONArray进行排序吗?
我正在开发一个Android聊天应用程序.当我打电话给我的api时,它会返回按user_id排序的聊天列表.但我需要做的是通过message_id序列化,因为我想先显示最后一条消息.这是我的onBindViewHolder方法,其中我得到了值.
public void onBindViewHolder(final MyAdapter_HomeViewHolder holder, final int position) {
holder.userNameTV.setText(data.get(position).getUserInfo().getFullName());
holder.msgBodyTV.setText(data.get(position).getBody());
holder.originator_iD.setText(data.get(position).getUserInfo().getId().toString());
//message ID. I need to serialize my recyclerView by this ID.biggest id should appear first.
holder.messageId.setText(data.get(position).getId().toString());
holder.owner_type_ET.setText("1");
holder.subject_ET.setText("Message");
}
Run Code Online (Sandbox Code Playgroud)
如果您需要查看完整代码,请https://pastebin.com/Zxmq36Gn
如何通过其标记名称对JSONArray进行排序,在android上升序和降序.
在我的应用程序中,我有一个如下所示的JSON,需要根据用户选项显示数据(按升序或降序按user_id标签排序).我已经解析了JSON如下:
JSONObject mObject = new JSONObject(JSONResponse);
String commentsVal = mObject.getString("message");
String resultVal = mObject.getString("result");
JSONArray resultArray = new JSONArray(resultVal);
int resultSize = resultArray.length();
for (int i = 0; i < resultArray.length(); i++) {
JSONObject resultObj = resultArray.getJSONObject(i);
resultObj.getString("comment_id");
.....
}
..............
Run Code Online (Sandbox Code Playgroud)
这是我的JSON响应:
{
"success": 1,
"message": "some message",
"result": [
{
"comment_id": "43906",
"comp_id": "116725",
"user_id": "48322",
"agree": "0",
.....
"replies": [....]
},
{
"comment_id": "43905",
"comp_id": "116725",
"user_id": "48248",
"agree": "0",
.......
"replies": [...]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要在解析时按"user_id"标记名称排序的"结果"JSON数组,如何在Android中执行此操作?