sort کردن ArrayList بر حسب String[] ؟
سلام دوستان من یک ArrayList<String> دارم که تعدادی عناضر در اون هستش چگونه میتوانم آن را بر حسب String[] سرت کنم :
به عبارت دیگر
ArrayList <String>
شامل مقادیر
{"2 روز","1 روز","4 هفته","2 هفته","1 هفته","3 هفته","4 ماه","3 ماه","2 ماه","بیش از 5 ماه"}
یا یکی دیگه شامل مقادیر
{"1 روز","4 هفته","3 هفته","4 ماه","بیش از 5 ماه","2 ماه"}
میخوام مقادیر فوق بر حسب String[] زیر
{"1 روز","2 روز","1 هفته","2 هفته","3 هفته","4 هفته","2 ماه","3 ماه","4 ماه","بیش از 5 ماه"}
sort بشن آیا چنین کاری ممکن است یا خیر ?
من از compare خود جاوا به نتیجه ای نرسیدم
نقل قول: sort کردن ArrayList بر حسب String[] ؟
وقتی شما چندین کلمه رو پشت سر هم با ترتیب خاصی مثل طول زمان می خوای مرتب کنی... نمی تونی از ترتیب الفبایی عادی استفاده کنی...
بهتره که به جای ارایه از رشته حرفی یه آرایه از یک ساختار کلاسی شامل دو تا فیلد تعریف کنی که یکیش همین رشته حرفیه و دیگریش شامل عددیه که طول زمان رو برای اون رشته بر حسب ثانیه نشون میده (مثلن یک هفته میشه ۷*۲۴*۶۰*۶۰ ثانیه) بعد شما میتونی یه کامپرتور بنویسی که بر حسب این اعداد اشیای توی اون آرایه رو مرتب کنه
Class Duration implementsComparator {
int duration;
String label;
public int compare(Object obj1, Object obj2) {Integer p1 = ((Duration)obj1).duration;
Integer p2 = ((Duration)obj2).duration;
if (p1 > p2 ){
return 1;
}
else if (p1 < p2){
return -1;
}
else
return 0;
}}
}