import java.util.*;
public class Test {
public class myComparator implements Comparator<String>
{
public int compare(String s1,String s2){
int pos11 = s1.indexOf('_');
int pos12 = s2.indexOf('_');
String num1 = s1.substring(0,pos11);
String num2 = s2.substring(0,pos12);
int pos21 = s1.indexOf('_',pos11+1);
int pos22 = s2.indexOf('_',pos12+1);
String date1 = s1.substring(pos11+1,pos21);
String date2 = s2.substring(pos12+1,pos22);

if(Integer.parseInt(date1) < Integer.parseInt(date2))
return -1;
else if(Integer.parseInt(date1) > Integer.parseInt(date2))
return 1;
else if(Integer.parseInt(num1) < Integer.parseInt(num2))
return -1;
else return 1;
}
}
    public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("1501_20141115_P11530101011");
list.add("1001_20141114_P11530101011");
list.add("2001_20141115_P11530101011");
list.add("501_20141114_P11530101011");
list.add("201_20141114_P11530101011");
list.add("1_20141115_P11530101011");
list.add("201_20141115_P11530101011");
list.add("1001_20141115_P11530101011");
Collections.sort(list,new Test().new myComparator());
for(String s:list){
System.out.println(s);
}
    }
}