I see this thing different (just to complement other answers):
You have a flight with seats and passengers, so what i'd do is implement the flight class to add seat-passenger logic. The only trick thing is you have to choose which Passenger will be the non-seated:
- (seatNumber, null)
- (seatNumber, defaultPassenger with id=0, and name=OPEN)
I took the option two:
Passenger:
   public class Seat {
        private int seatNumber;
        public Seat ( )
        {
        }
        public Seat ( int seatNumber )
        {
            this.seatNumber = seatNumber;
        }
        /**
         * @return the seatNumber
         */
        public int getSeatNumber ( )
        {
            return seatNumber;
        }
        /**
         * @param seatNumber the seatNumber to set
         */
        public void setSeatNumber ( int seatNumber )
        {
            this.seatNumber = seatNumber;
        }
        @Override
        public String toString ( )
        {
            return "Seats [seatNumber=" + seatNumber + "]";
        }
        /* (non-Javadoc)
         * @see java.lang.Object#hashCode()
         */
        @Override
        public int hashCode ( )
        {
            final int prime = 31;
            int result = 1;
            result = prime * result + seatNumber;
            return result;
        }
        /* (non-Javadoc)
         * @see java.lang.Object#equals(java.lang.Object)
         */
        @Override
        public boolean equals ( Object obj )
        {
            if ( this == obj )
                return true;
            if ( obj == null )
                return false;
            if ( getClass ( ) != obj.getClass ( ) )
                return false;
            Seat other = ( Seat ) obj;
            if ( seatNumber != other.seatNumber )
                return false;
            return true;
        }
    }
Seat:
public class Seat {
    private int seatNumber;
    public Seat ( )
    {
    }
    public Seat ( int seatNumber )
    {
        this.seatNumber = seatNumber;
    }
    /**
     * @return the seatNumber
     */
    public int getSeatNumber ( )
    {
        return seatNumber;
    }
    /**
     * @param seatNumber the seatNumber to set
     */
    public void setSeatNumber ( int seatNumber )
    {
        this.seatNumber = seatNumber;
    }
    @Override
    public String toString ( )
    {
        return "Seats [seatNumber=" + seatNumber + "]";
    }
    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode ( )
    {
        final int prime = 31;
        int result = 1;
        result = prime * result + seatNumber;
        return result;
    }
    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals ( Object obj )
    {
        if ( this == obj )
            return true;
        if ( obj == null )
            return false;
        if ( getClass ( ) != obj.getClass ( ) )
            return false;
        Seat other = ( Seat ) obj;
        if ( seatNumber != other.seatNumber )
            return false;
        return true;
    }
}
Flight:
import java.util.HashMap;
public class Flight
{
    private HashMap<Seat, Passenger>  seatMap;
    public Flight(int numberOfSeats)
    {
        seatMap = new HashMap<>();
        for(int i = 1; i <= numberOfSeats; i++)
        {
            seatMap.put ( new Seat ( i ) , new Passenger ( ) );
        }
    }
    /**
     * @return the seatMap
     */
    public HashMap < Seat , Passenger > getSeatMap ( )
    {
        return seatMap;
    }
    /**
     * @param seatMap the seatMap to set
     */
    public void setSeatMap ( HashMap < Seat , Passenger > seatMap )
    {
        this.seatMap = seatMap;
    }
    public void sitPassenger (int seatNumber, Passenger passenger)
    {
        seatMap.put ( new Seat ( seatNumber ) , passenger );
    }
    @Override
    public String toString ( )
    {
        return "Flight [seatMap=" + seatMap + "]";
    }
}
MainClass:
public class mainProgram
{
    public static void main(String args [])
    {
        //set number of seats
        Flight myFlight = new Flight ( 3 );
        //first passenger
        Passenger firstP = new Passenger ( );
        firstP.setSocialNumber ( 19993 );
        firstP.setName ( "John" );
        //second passenger
        Passenger secondP = new Passenger ( );
        secondP.setSocialNumber ( 19994 );
        secondP.setName ( "Brian" );
        //sit them
        myFlight.sitPassenger ( 1 , firstP );
        myFlight.sitPassenger ( 2 , secondP );
        //output
        System.out.println ( myFlight.toString ( ) );
    }
}
Output:
Flight [seatMap={
Seats [seatNumber=1]=Passenger [socialNumber=19993, name=John], 
Seats [seatNumber=2]=Passenger [socialNumber=19994, name=Brian], 
Seats [seatNumber=3]=Passenger [socialNumber=0, name=OPEN]
}]
This solution allow to have the same passenger on different flights (seats) which an Airplane seat reserve program should do, IMHO.