给定一个大小为 n 的数组 nums ,返回其中的多数元素。
多数元素是指在数组中出现次数 大于 n/2 的元素。
arr = {1, 2, 1, 1, 2, 2, 1, 3, 1, 1};
public class Demo01 {
public static void main(String[] args) {
int[] arr = {1, 2, 1, 1, 2, 2, 1, 3, 1, 1};
Arrays.sort(arr);
if (arr.length >= 3) {
int num = arr[arr.length / 2];
System.out.println("该数组的多数元素为:" + num);
} else {
System.out.println("没有多数元素");
}
}
}
综合案例(用户博客管理系统):
package org.oracle.system;
//用户属性
public class User{
private int id;
private String userName;
private String password;
private int age;
private String gender;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public User() {
}
public User(int id, String userName, String password, int age, String gender) {
this.id = id;
this.userName = userName;
this.password = password;
this.age = age;
this.gender = gender;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", password='" + password + '\'' +
", age=" + age +
", gender='" + gender + '\'' + '}';
}
}
package org.oracle.system;
import java.util.Date;
//文章属性
public class Article {
private String title;
private String content;
private User user;
private Date publishTime;
private Date modifyTime;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public User getAuthor() {
return user;
}
public void setAuthor(User user) {
this.user = user;
}
public Date getPublishTime() {
return publishTime;
}
public void setPublishTime(Date publishTime) {
this.publishTime = publishTime;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public Article() {
}
public Article(User user){
this.user = user;
}
public Article(String title, String content, User user, Date publishTime) {
super();
this.title = title;
this.content = content;
this.user = user;
this.publishTime = publishTime;
}
public Article(String title, String content, User user, Date publishTime, Date modifyTime) {
super();
this.title = title;
this.content = content;
this.user = user;
this.publishTime = publishTime;
this.modifyTime = modifyTime;
}
@Override
public String toString() {
return "Article [title=" + title + ", content=" + content + ", author=" + user + ", publishTime="
+ publishTime + ", modifyTime=" + modifyTime + "]";
}
}
package org.oracle.system;
import java.util.ArrayList;
import java.util.Scanner;
//用户注册
public class Register {
private User user;
static ArrayList<User> arrayList = new ArrayList<>();
private Scanner sc = new Scanner(System.in);
public void add(User user){
arrayList.add(user);
}
public ArrayList<User> findAll() {
return arrayList;
}
public User findById(int id) {
User us = null;
for (User u : arrayList) {
if (u.getId() == id) {
us = u;
break;
}
}
return us;
}
}
package org.oracle.system;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
//文章操作
public class ArticleActions {
private User user;
static ArrayList<Article> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
public ArticleActions(User user){
this.user = user;
}
//写文章
public void write() {
System.out.println("请输入标题:");
String title = sc.next();
if (isExists(title)){
System.out.println("已存在该文章,请重新输入!!");
write();
}else {
System.out.println("请输入内容:");
String content = sc.next();
if (!content.equals("")){
System.out.print("发布时间为:");
Date publishTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
System.out.println(formatter.format(publishTime));
Article article = new Article(title, content, user, publishTime);
list.add(article);
display(title);
}
}
}
//修改文章
public void revise() {
System.out.println("请输入您要修改的文章标题:");
String title = sc.next();
if (isExists(title)){
for (Article article : list) {
if (title.equals(article.getTitle())) {
System.out.println("请输入修改后的标题:");
article.setTitle(sc.next());
System.out.println("请修改内容:");
article.setContent(sc.next());
System.out.print("修改时间为:");
Date modifyTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
System.out.println(formatter.format(modifyTime));
article.setModifyTime(modifyTime);
display(article.getTitle());
}
}
}else {
System.out.println("不存在该文章,请重新输入标题");
revise();
}
}
//删除文章
public void removeArticle(){
System.out.println("请输入您要删除的文章的标题:");
String title = sc.next();
if (isExists(title)){
for (Article article : list) {
if (title.equals(article.getTitle())) {
if (list.remove(article)){
System.out.println("删除成功!!!");
break;
}else {
System.out.println("删除失败!!!");
break;
}
}
}
}else {
System.out.println("不存在该文章,请重新输入标题");
removeArticle();
}
}
//查看文章
public void checkArticle(){
if (!list.isEmpty()){
for (Article article : list){
System.out.println(article);
}
}else {
System.out.println("您还没有写过文章!");
}
}
//是否存在文章
public boolean isExists(String name) {
int n = 0;
for (Article article : list) {
if (name.equals(article.getTitle())) {
n++;
}
}
if (n != 0) {
return true;
}
return false;
}
//展示文章
public void display(String title){
if (isExists(title)){
for (Article article : list) {
if (title.equals(article.getTitle())) {
System.out.println("标题:" + title);
System.out.println("作者:" + article.getAuthor().getUserName());
System.out.println("内容:" + article.getContent());
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
System.out.println("发布时间:" + formatter.format(article.getPublishTime()));
if (article.getModifyTime() != null){
System.out.println("修改时间:" + formatter.format(article.getModifyTime()));
}else {
System.out.println("修改时间:" + null);
}
}
}
}else {
System.out.println("不存在该文章");
}
}
}
package org.oracle.system;
import java.util.Scanner;
import static org.oracle.system.Register.arrayList;
//测试
public class Test {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args){
boolean b = true;
while (b){
System.out.println("请选择1(注册)、2(登录)、3(退出):");
int choice = sc.nextInt();
switch (choice){
case 1:
register();
break;
case 2:
login();
break;
case 3:
System.out.println("退出");
b = false;
break;
default:
System.out.println("请重新选择!!!");
}
}
}
//注册
public static void register(){
Register register = new Register();
System.out.println("---注册---");
System.out.println("请输入姓名:");
String userName = sc.next();
if (isExists(userName)){
System.out.println("已存在该用户,请重新输入信息!!");
register();
}else {
System.out.println("请输入id:");
int userId = sc.nextInt();
System.out.println("请输入密码:");
String password = sc.next();
System.out.println("请输入年龄:");
int age = sc.nextInt();
System.out.println("请输入性别:");
String gender = sc.next();
User user = new User(userId, userName, password, age, gender);
System.out.println("注册成功!!");
register.add(user);
}
}
//登录
public static void login(){
System.out.println("---登录---");
System.out.println("请输入用户名:");
String name = sc.next();
if (isExists(name) && !arrayList.isEmpty()){
System.out.println("请输入密码:");
String pwd = sc.next();
for (User u : arrayList) {
if (name.equals(u.getUserName()) && pwd.equals(u.getPassword())) {
System.out.println("登录成功!!");
articleView(u);
break;
}else {
System.out.println("登陆失败,请重新登录!!");
login();
}
}
}else {
System.out.println("用户不存在,请重新登录!!");
login();
}
}
//是否存在用户
public static boolean isExists(String name) {
int n = 0;
for (User u : arrayList) {
if (name.equals(u.getUserName())) {
n++;
}
}
if (n != 0) {
return true;
}
return false;
}
//文章界面
public static void articleView(User user){
Article article = new Article(user);
ArticleActions aa = new ArticleActions(user);
System.out.println("欢迎进入博客!!!");
boolean b = true;
while(b){
System.out.println("1 : 写文章");
System.out.println("2 : 修改文章");
System.out.println("3 : 删除文章");
System.out.println("4 : 查看文章");
System.out.println("5 : 退出");
System.out.println("请输入序号:");
int num = sc.nextInt();
switch (num){
case 1:
aa.write();
break;
case 2:
aa.revise();
break;
case 3:
aa.removeArticle();
break;
case 4:
aa.checkArticle();
break;
case 5:
System.out.println("退出");
b = false;
break;
default:
System.out.println("请输入1~5的序号!!");
articleView(user);
}
}
}
}
Team8(抽象类)
定义一个抽象的"Role"类 有姓名 年龄 性别等成员变量
1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有)
再通过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play()方法
该方法不返回任何值 同时至少定义两个构造方法。Role类中要体现出this的几种用法。
2. 从Role类派生出一个"Employee"类 该类具有Role类的所有成员
构造方法除外 并扩展 salary成员变量 同时增加一个静态成员变量“职工编号 ID ”。
同样要有至少两个构造方法 要体现出this和super的几种用法
还要求覆盖play()方法 并提供一个final sing()方法。
3. “Manager"类继承"Employee"类 有一个final成员变量"vehicle”
4. 在main()方法中制造Manager和Employee对象,并测试这些对象的方法
public class Test01 {
public static void main(String[] args) {
Employee employee = new Employee("张三", 33, "男", 10001);
employee.setSalary(5000);
employee.play();
employee.sing();
Manager manager = new Manager("李四", 25, "男", 10002, 8000.0);
manager.play();
System.out.println("我有一辆" + manager.getVEHICLE());
}
}
Team9(抽象类)
品尝饮料
1、建立一个Java抽象类Drink 应当
a、声明一个抽象方法taste() 该方法负责输出饮料的味道
b、声明int型常量来代表不同的饮料类型 如:咖啡、啤酒、牛奶
c、声明静态工厂方法getDrink(int drinkType) 根据传入的参数创建不同的饮料对象 并返回该对象 建议使用switch语句。该方法要求声明DrinkNotFoundException 当没有相对应的饮料类型时 抛出该异常。
2、建立Drink的具体子类
a、分别建立Drink的子类 Coffee 代表咖啡 Beer 代表啤酒 Milk 代表牛奶 ; b、实现taste()方法 要求在控制台打印各自的味道特征。
3、建立异常类DrinkNotFoundException
a、继承Exception
b、在Drink的 方 法getDrink(int drinkType)中 声 明 引 发DrinkNotFoundException异常 当传入的参数没有相对应的饮料类型时 抛出异常。
c、在使用getDrink方法的类中捕捉该异常。
4、建立Test测试类 测试以上内容的正确性
a、编写main方法 通过命令行传参的方式传入某种饮料的类型。
b、在main方法中 调用Drink类的getDrink方法 获得相应的饮料对象。注意捕获DrinkNotFoundException。
c、然后调用该饮料对象的taste()方法 输出该饮料的味道。
5、编译程序 并运行。
注意事项 1、仔细审题 把题目要求理解准确 2、请注意多态性的运用 3、请注意代码的书写、命名符合规范 应有适当的注释
public abstract class Drink {
int Coffee, Beer, Milk;
public abstract void taste();
public static int getDrink(int drinkType) throws DrinkNotFoundException {
switch (drinkType){
case 1:
System.out.println("咖啡:");
Coffee coffee = new Coffee();
coffee.taste();
break;
case 2:
System.out.println("啤酒");
Beer beer = new Beer();
beer.taste();
break;
case 3:
System.out.println("牛奶");
Milk milk = new Milk();
milk.taste();
break;
default:
throw new DrinkNotFoundException();
}
return drinkType;
}
}
public class Coffee extends Drink{
@Override
public void taste() {
System.out.println("苦的");
}
}
public class Beer extends Drink{
@Override
public void taste() {
System.out.println("一股酒味儿");
}
}
public class Milk extends Drink{
@Override
public void taste() {
System.out.println("奶香味");
}
}
public class DrinkNotFoundException extends Exception{
private static final long serialVersionUID = 1L;
}
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) throws DrinkNotFoundException{
Scanner sc =new Scanner(System.in);
System.out.println("请输入1(咖啡),2(啤酒),3(牛奶):");
try {
int num = sc.nextInt();
Drink.getDrink(num);
}catch (Exception e){
e.printStackTrace();
}
}
}