android中的排序arraylist不工作
我在类约会对象的数组列表上调用collections.sort,但它不会排序,什么也不会发生 这就是我所谓的集合排序android中的排序arraylist不工作,android,sorting,arraylist,comparable,compareto,Android,Sorting,Arraylist,Comparable,Compareto,我在类约会对象的数组列表上调用collections.sort,但它不会排序,什么也不会发生 这就是我所谓的集合排序 ArrayList<appointment> listoffappointments = new ArrayList<appointment>(); //then everytime on button click user adds a new appointment after setting the following code is exec
ArrayList<appointment> listoffappointments = new ArrayList<appointment>();
//then everytime on button click user adds a new appointment after setting the following code is executed
{
Calendar calendar1 = Calendar.getInstance();
calendar1.set(mYear, mMonth, mDay, temphour, tempmin);
appointment tempppt = new appointment(c2,tempstring1);
listoffappointments.add(tempppt);
Collections.sort(listoffappointments);
}
ArrayList listoffappoints=new ArrayList();
//然后,每次单击按钮时,用户都会在执行以下代码后添加一个新约会
{
Calendar calendar1=Calendar.getInstance();
日历1.设置(mYear、Ammonth、mDay、temphour、tempmin);
任命tempppt=新任命(c2,tempstring1);
listoffappoints.add(temppt);
集合。排序(Listoff约会);
}
这是课堂,有人能找到问题吗谢谢
import java.util.Calendar;
public class appointment implements Comparable<appointment> {
Calendar time;
String Text;
public appointment(Calendar tempc, String temptext) {
Text = temptext;
time = tempc;
}
public void settext(String text)
{
Text = text;
}
public String gettext()
{
return Text;
}
public String toString() {
return Text;
}
public Long gettimeofappt()
{
return time.getTimeInMillis();
}
@Override
public int compareTo(appointment o) {
return (this.gettimeofappt() < o.gettimeofappt() ) ? -1: (this.gettimeofappt() > o.gettimeofappt() ) ? 1:0 ;
}
}
import java.util.Calendar;
公营班级聘任制度{
日历时间;
字符串文本;
公共约会(日历时间、字符串和文本){
Text=ext;
时间=tempc;
}
公共void settext(字符串文本)
{
文本=文本;
}
公共字符串gettext()
{
返回文本;
}
公共字符串toString(){
返回文本;
}
公共长gettimeofapp()
{
返回时间。getTimeInMillis();
}
@凌驾
公共内部比较(任命o){
返回(this.gettimeofapp()o.gettimeofapp())?1:0;
}
}
如果要返回长对象,请将比较器更改为:
@Override
public int compareTo(appointment o) {
return this.gettimeofappt().compareTo(o.gettimeofappt() );
}
Long.compareTo
以数字方式比较两个长对象,并重新计算:
如果此长度等于参数长度,则值为0;没有价值
如果此长度在数值上小于参数长度,则小于0;和
如果此长度在数值上大于
参数长(有符号比较)
如果要返回长对象,请将比较器更改为:
@Override
public int compareTo(appointment o) {
return this.gettimeofappt().compareTo(o.gettimeofappt() );
}
Long.compareTo
以数字方式比较两个长对象,并重新计算:
如果此长度等于参数长度,则值为0;没有价值
如果此长度在数值上小于参数长度,则小于0;和
如果此长度在数值上大于
参数长(有符号比较)
如果要返回长对象,请将比较器更改为:
@Override
public int compareTo(appointment o) {
return this.gettimeofappt().compareTo(o.gettimeofappt() );
}
Long.compareTo
以数字方式比较两个长对象,并重新计算:
如果此长度等于参数长度,则值为0;没有价值
如果此长度在数值上小于参数长度,则小于0;和
如果此长度在数值上大于
参数长(有符号比较)
如果要返回长对象,请将比较器更改为:
@Override
public int compareTo(appointment o) {
return this.gettimeofappt().compareTo(o.gettimeofappt() );
}
Long.compareTo
以数字方式比较两个长对象,并重新计算:
如果此长度等于参数长度,则值为0;没有价值
如果此长度在数值上小于参数长度,则小于0;和
如果此长度在数值上大于
参数长(有符号比较)
试试这个:
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(字符串s1、字符串s2){
返回s1.compareToIgnoreCase(s2);
}
});
看看试试这个:
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(字符串s1、字符串s2){
返回s1.compareToIgnoreCase(s2);
}
});
看看试试这个:
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(字符串s1、字符串s2){
返回s1.compareToIgnoreCase(s2);
}
});
看看试试这个:
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(字符串s1、字符串s2){
返回s1.compareToIgnoreCase(s2);
}
});
查看你的集合在哪里。排序调用?在我的另一个类中,有类指定对象的数组列表,你应该在你的问题中包含该代码。现在在问题中添加了它@nknasume我的数组中已经有指定类型的元素了列表中的集合在哪里。排序调用?在我的另一个类中,有类指定对象的数组列表类指定的对象您应该在问题中包含该代码。现在在问题中添加它@nknasume我已经在我的ArrayList中有指定类型的元素,您的集合在哪里。排序调用?在我的另一个包含类指定对象数组列表的类中,您应该在问题中包含该代码。在现在的问题@nKnassume我已经在我的ArrayList中有类型约会的元素了,你的集合在哪里。排序调用?在我的另一个类中,有类型约会对象的数组列表,你应该在你的问题中包含该代码。在现在的问题中添加了它@nKnassume我已经在我的ArrayList中有类型约会的元素了“返回此.getTimeOfApp().compareTo(o.getTimeOfApp());“没有任何变化@Blackbelt您可以打印ArrayList的内容吗?只是为了调试数组列表的puropsecontents,它们的显示顺序完全相同,所以先显示,然后显示,然后显示,然后显示,然后显示,最后显示”return this.getTimeOfApp().compareTo(o.getTimeOfApp());“没有任何变化@Blackbelt您可以打印ArrayList的内容吗?只是为了调试数组列表的puropsecontents,它们的显示顺序完全相同,所以先显示,然后显示,然后显示,然后显示,然后显示,最后显示”return this.getTimeOfApp().compareTo(o.getTimeOfApp());“没有任何变化@Blackbelt您可以打印ArrayList的内容吗?只是为了调试数组列表的puropsecontents,它们的显示顺序完全相同,所以先显示,然后显示,然后显示,然后显示,然后显示,最后显示”return this.getTimeOfApp().compareTo(o.getTimeOfApp());“没什么变化@Blackbelt你能打印ArrayList的内容吗?只是为了调试数组列表中的puropsecontents按顺序显示,所以先显示,然后显示,然后显示,再显示,然后显示,最后显示”