A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© _J2EE_LiXiZhen 中级黑马   /  2017-11-13 23:49  /  757 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自定义人类:包含姓名,年龄,**属性.私有成员变量,生成无参,有参构造方法,生成get/set方法.创建5个人放到ArrayList中.
使用迭代器获取每个人的信息.找出最高的人,最矮的人并输出最高人和最矮人的信息.打印格式如下:最高的人是张三,**1.80. 最矮的人是李四,**1.60

[Java] 纯文本查看 复制代码
//自定义人类:包含姓名,年龄,**属性.私有成员变量,生成无参,有参构造方法,生成get/set方法

public class Person {
	//姓名
	private String name;
	//年龄
	private int age;
	//**
	private double height;
	
	public Person() {
		// TODO Auto-generated constructor stub
	}

	public Person(String name, int age, double height) {
		super();
		this.name = name;
		this.age = age;
		this.height = height;
	}

	//get/set
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

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

	public double getHeight() {
		return height;
	}

	public void setHeight(double height) {
		this.height = height;
	}
}

public class Test {
	public static void main(String[] args) {
		// 创建键盘录入对象
		Scanner sc = new Scanner(System.in);
		// 创建ArrayList集合
		Collection<Person> coll = new ArrayList<Person>();

		// 循环录入人的信息
		for (int i = 0; i < 5; i++) {
			// 提示录入
			System.out.println("请输入第" + (i + 1) + "个人的姓名");
			String name = sc.next();
			System.out.println("请输入第" + (i + 1) + "个人的年龄");
			int age = sc.nextInt();
			System.out.println("请输入第" + (i + 1) + "个人的**");
			double height = sc.nextDouble();
			// 存入集合
			coll.add(new Person(name, age, height));
		}

		// 迭代器遍历
		Iterator<Person> it = coll.iterator();
		while (it.hasNext()) {
			Person p = it.next();
			System.out.println("姓名: " + p.getName() + "  年龄: " + p.getAge() + "  **: " + p.getHeight());
		}

		// coll向下转型
		ArrayList<Person> arr = (ArrayList<Person>) coll;
		// 定义最高**
		double maxHeight = arr.get(0).getHeight();
		// 定义最矮**
		double minHeight = arr.get(0).getHeight();
		// 定义最大索引
		int maxIndex = 0;
		// 定义最小索引
		int minIndex = 0;

		// 循环集合找出最大最小**的Person对象
		for (int i = 1; i < arr.size(); i++) {
			// 最大**
			if (maxHeight < arr.get(i).getHeight()) {
				maxHeight = arr.get(i).getHeight();
				maxIndex = i;
			}
			// 最小**
			if (minHeight > arr.get(i).getHeight()) {
				minHeight = arr.get(i).getHeight();
				minIndex = i;
			}
		}

		// 打印最大最小**的对象
		System.out.println("最高的人是: " + arr.get(maxIndex).getName() + " **是: " + arr.get(maxIndex).getHeight() + "米");
		System.out.println("最矮的人是: " + arr.get(minIndex).getName() + " **是: " + arr.get(minIndex).getHeight() + "米");
	}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马