类与类集合的基本使用

设计人员类(姓名,性别,年龄,出生年月日),创建20位人员,年龄在(集合)(20-25)且随机产生 存放在集合中,最后将年龄>24的人员删除.
思路:定义类 Person 四个属性 创建一个List集合对象
使用for循环来创建20位人员,随机产生相关的属性值
再使用for循环,过滤大于24岁的人员
通过增强for循环显示满足条件的人员信息

完成 person类+personMain类

package bean;

import java.util.Date;

public class Person {
private String name;
private String sex;
private int age;
private Date date;//日期

public Person(String name, String sex, int age, Date date) {
this.name = name;
this.sex = sex;
this.age = age;
this.date = date;
}
public Person(){}
public void setName(String name) {
this.name = name;
}

public void setSex(String sex) {
this.sex = sex;
}

public void setAge(int age) {
this.age = age;
}

public void setDate(Date date) {
this.date = date;
}

public String getName() {
return name;
}

public String getSex() {
return sex;
}

public int getAge() {
return age;
}

public Date getDate() {
return date;
}
}

personMian.java

package com.company;

import bean.Person;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

/**
* Created by lxj-pc on 2017/6/25.
*/
public class PersonMain {
public static void main(String[] args) {
//alt+enter 导入类所在位置 ArayList
//<>泛型声明的类型 元素类型
List<Person> persons=new ArrayList<>();
Person person=null;


SimpleDateFormat sdf=
new SimpleDateFormat("yyyy-MM-dd");

for (int i=0;i<20;i++){
person=new Person();
person.setName("person-"+i);

person.setAge((int) (Math.random()*6+20));
//三元操作符号
person.setSex(Math.random()>0.5?"男":"女");

//2004-00-10
//抛出异常 捕获异常
//异常的分类:
// 受控异常: 可以捕获(try-catch)
// 非受控异常:程序运行时发生的异常,如索引越界,除数为0等(bug)
//年份:[1993,2005]
// 月份[1-12]
// 日:[1,30]
try {
int maxYear=2005;
int minYear=1993;
int year= (int) (Math.random()*(maxYear-minYear+1)+minYear);

//数据型d,字符类型s,%f 小数类型
//String.format("%d-%s-%s")
int month= (int) (Math.random()*12+1);
String monthStr =month<10?"0"+month:""+month;

person.setDate(sdf.parse(
String.format("%d-%s-10",year,monthStr )));
} catch (ParseException e) {
e.printStackTrace();
}

//添加到集合里去
persons.add(person);


}
//1-新元素 2-在哪取
System.out.println("处理前");
for (Person p:persons
) {
System.out.println(p.getName()+","+p.getAge()+","+sdf.format(p.getDate()));//日期转成字符串

}
System.out.println("处理中");

//输出集合中年龄超过24周岁
//对list集合元素删除是 建议使用倒序方式
for (int i=persons.size()-1;i>=0;i--){
//如果方法有返回值 可以在方法后面添加
//.var 生成这个返回值的引用[局部变量]
//.field 生成这个返回值的引用[类成员变量]
if (persons.get(i).getAge()>=24){
persons.remove(i);
}
}
System.out.println("处理后");
for (Person p:persons
) {
System.out.println(p.getName()+","+p.getAge()+","+sdf.format(p.getDate()));//日期转成字符串

}

}


}


转载于:https://www.cnblogs.com/lxj666/p/7077561.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值