I have Wrapper class which contains List of Map.
After performing some operations that List values order gets changed.

    public class TeacherAvailabilityWrapper{
        public List<Session__c> session{get;set;}
        public Set<Date> dateOnCalender{get;set;}
        public Map<Date,List<Session__c>> dateSession{set;get;}
        public Map<String,List<Session__c>> sessionByDay{set;get;}
        
        
        public Integer srno{get;set;}
        public String Teacher{get;set;}
        public Id IdTeacher{get;set;}
        public TeacherAvailabilityWrapper(){
           session = new List<Session__c>();
        }
    }

Now I want to sort **List<Session__c>** of **dateSession**. Based on Start_time__c (DateTime)field in session.

How to achieve it using Comparable interface?

applied **PPS** logic of @Keith C
[![enter image description here][1]][1]


  [1]: https://i.sstatic.net/yrH10.png
I added following code

    for(TeacherAvailabilityWrapper twrap: listTeacherAvailWrap){
        		for(Date twDt: twrap.dateSession.KeySet()){
        			Session__c[] sessions = twrap.dateSession.get(d);
    				SessionWrapper[] wrappers = new SessionWrapper[] {};
    				for (Session__c s : sessions) wrappers.add(new SessionWrapper(s));
    				wrappers.sort();
    				sessions.clear();
    				for (SessionWrapper w : wrappers) sessions.add(w.sob);
        		}
        		System.debug('sessionByDay--> '+ twrap.sessionByDay);
        	}