Per ordinare un vettore di stringhe puoi usare Collections.sort():

codice:
File dir = new File("C:" + File.separator + "windows");
File[] cont = dir.listFiles();
int MAX = cont.length;
Vector lista = new Vector();
for(int i = 0; i < MAX; i++){
	String tmp = cont[i].getName();
	if(tmp.toUpperCase().endsWith(".B") || tmp.toUpperCase().endsWith(".T")){
		lista.add(tmp);
	}
}

Collections.sort(lista);
for(int i = 0; i < lista.size(); i++)
	System.out.println(lista.get(i));

Se vuoi considerare uguali nomi di file indipendentemente dalle maiuscole o minuscole dovresti trasformare il nome tutto in maiuscolo prima di fare il confronto con ".T" o ".B".

Un modo più elegante per filtrare solo i file che ti interessano, e anche piu efficiente se devi filtrare in più punti è di usare un FilenameFilter che si occupa di accettare o meno un file in base ai criteri che stabilisci:

codice:
class MyFileFilter implements FilenameFilter{

	public boolean accept(File f, String name){
		//se non e' un file non lo accetto
		if(! new File(f, name).isFile()){
			return false;
		}

		//Se non termina con le estensioni che voglio no lo accetto
		if(name.toUpperCase().endsWith(".T") || name.toUpperCase().endsWith(".EXE"))
			return true;
		else
			return false;
	}

}


//Quindi:


File dir = new File("C:" + File.separator + "windows");
String[] list = dir.list(new MyFileFilter());
if(list == null){
	System.out.println("Il percorso specificato non è una cartella");
}
Vector v = new Vector();
for(int i = 0; i < list.length; i++)
	v.add(list[i]);
Collections.sort(v);
for(int i = 0; i < v.size(); i++)
	System.out.println(v.get(i));