欢迎光临散文网 会员登陆 & 注册

电影院买票选座位的代码

2020-04-14 10:50 作者:小垃圾kiki  | 我要投稿
package cn.jd.syn;

import java.util.ArrayList;
import java.util.List;

/*
 * 快乐影院
 */
public class HappyCinema2 {
    public static void main(String[] args) {
        //可用位置
        List<Integer> available=new ArrayList<>();
        available.add(1);
        available.add(2);
        available.add(3);
        available.add(6);
        available.add(7);
        //顾客需要的位置
        List<Integer> seats1=new ArrayList<Integer>();
        seats1.add(1);
        seats1.add(2);
        List<Integer> seats2=new ArrayList<Integer>();
        seats2.add(4);
        seats2.add(5);
        seats2.add(6);
        
        XTDCinema c=new XTDCinema(available,"新天地");
        new Thread(new HappyCustomer(c,seats1),"达拉").start();
        new Thread(new HappyCustomer(c,seats2),"东丽").start();
    }
}
//顾客
class HappyCustomer implements Runnable{
    XTDCinema  cinema;
    List<Integer> seats;
    
    public HappyCustomer(XTDCinema cinema, List<Integer> seats) {
        this.cinema = cinema;
        this.seats = seats;
    }

    @Override
    public void run() {
        synchronized (cinema) {
            
        
        boolean flag=cinema.bookTickets(seats);
        if(flag) {
            System.out.println("出票成功"+Thread.currentThread().getName()+"-->位置为"+seats);
        }else {
            System.out.println("出票失败"+Thread.currentThread().getName()+"-->位置不够");
        }
        
        }
    }
}
//影院
class XTDCinema{
    List<Integer>  available;//可用的位置
    String name;//名称
    public XTDCinema(List<Integer>  available,String name) {
        this.available=available;
        this.name=name;
    }
    //判断是否购票成功
    public boolean bookTickets(List<Integer>  seats) {
        System.out.println("欢迎"+this.name+"  ,可用位置为:"+available);
        List<Integer> copy=new ArrayList<Integer>();
        copy.addAll(available);
        //相减
        copy.removeAll(seats);
        //判断大小
        if(available.size()-copy.size()!=seats.size()) {
            return false;
        }
//        成功
        available=copy;
        
        return true;
        
    }
}

电影院买票选座位的代码的评论 (共 条)

分享到微博请遵守国家法律