PDA

View Full Version : sort کردن ArrayList بر حسب String[] ؟



harani
دوشنبه 25 فروردین 1393, 09:07 صبح
سلام دوستان من یک 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 خود جاوا به نتیجه ای نرسیدم

cups_of_java
دوشنبه 25 فروردین 1393, 14:27 عصر
وقتی شما چندین کلمه رو پشت سر هم با ترتیب خاصی مثل طول زمان می خوای مرتب کنی... نمی تونی از ترتیب الفبایی عادی استفاده کنی...

بهتره که به جای ارایه از رشته حرفی یه آرایه از یک ساختار کلاسی شامل دو تا فیلد تعریف کنی که یکیش همین رشته حرفیه و دیگریش شامل عددیه که طول زمان رو برای اون رشته بر حسب ثانیه نشون میده (مثلن یک هفته میشه ۷*۲۴*۶۰*۶۰ ثانیه)‌ بعد شما میتونی یه کامپرتور بنویسی که بر حسب این اعداد اشیای توی اون آرایه رو مرتب کنه

Class Duration implements Comparator {
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;
}}
}