Java控制台投票系统核心是选项管理、用户投票、结果统计三环节,用VoteOption和VotingSession类封装数据与逻辑,通过Set防重复投票,List存选项,提供castVote、getResults、printResults等方法实现完整流程。
Java中实现基本投票系统,核心是围绕“选项管理”、“用户投票”、“结果统计”三个环节设计,不依赖Web框架也能用控制台快速验证逻辑。重点在于数据结构选型和状态控制,避免并发冲突和重复投票。
定义一个 VoteOption 类,包含选项名(String)、得票数(int)、是否允许被投(boolean)等字段;整个投票活动用 VotingSession 类管理,持有 List
提供 castVote(String userId, String optionName) 方法:先检查用户是否已投(查Set)、选项是否存在(遍历List比对name)、选项是否启用;全部通过则对应选项票数+1,同时将userId加入已投集合。

在 VotingSession 中添加 getResults() 方法,返回按票数降序的 List
在main方法中创建VotingSession实例,预设几个选项(如"A. Java"、"B. Python"),然后用Scanner接收用户输入(ID和选项编号/名称),调用castVote,输入"quit"结束并调用printResults。
基本上就这些。不需要数据库或网络通信,纯Java SE就能跑通完整流程。后续想持久化,只需把List和Set换为文件读写或JDBC操作,结构不变。