集合和数组问题

1.Person类

//第2题:分析以下需求,并用代码实现 
//	1.定义Person类包含姓名:String name、年龄:int age、成绩:int score,生成空参、有参构造、set和get方法、toString方法
//	2.定义Student类继承Person,属性与Person类相同
//	3.查看API中ArrayList集合中的以下方法:
//		(1)boolean add(E e) 方法
//		(2)<T> T[] toArray()方法
//		(3)boolean addAll(Collection<? extends E> c)方法
//	4.通过查看API对以上方法的学习,完成以下功能
//		(1)ArrayList集合中存入5个Student对象,将ArrayList集合转成对应的数组Student[],并遍历打印数组中的元素
//		(2)定义一个存储Person对象的ArrayList集合对象list1,并存入2个Person对象,定义一个存储Student对象的ArrayList集合对象list2,
//		并存入2个Student对象,调用addAll方法将list2的全部内容添加到list1中,遍历打印list1中的内容
package com.n2;

public class Person {
	String name;
	int age;
	int score;

	public Person() {
		// TODO Auto-generated constructor stub
	}

	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 int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}

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

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("Person [name=");
		builder.append(name);
		builder.append(", age=");
		builder.append(age);
		builder.append(", score=");
		builder.append(score);
		builder.append("]");
		return builder.toString();
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

2.Student类

package com.n2;

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

public class Student extends Person {
	String name;
	int age;
	int score;

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("Student [name=");
		builder.append(name);
		builder.append(", age=");
		builder.append(age);
		builder.append(", score=");
		builder.append(score);
		builder.append("]");
		return builder.toString();
	}

	public Student() {
		// TODO Auto-generated constructor stub
	}

	public Student(String name, int age, int score) {
		this.name = name;
		this.age = age;
		this.score = score;
	}

	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 int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student student1 = new Student("张三", 23, 100);
		Student student2 = new Student("李四", 21, 98);
		Student student3 = new Student("王五", 22, 78);
		Student student4 = new Student("马六", 23, 87);
		Student student5 = new Student("马哈哈", 20, 65);

		List<Student> list = new ArrayList<Student>();
		list.add(student1);
//		System.out.println(list.get(0));
		list.add(student2);
		list.add(student3);
		list.add(student4);
		list.add(student5);

//		(1)ArrayList集合中存入5个Student对象,将ArrayList集合转成对应的数组Student[],并遍历打印数组中的元素

		for (Student student : list) {
			System.out.println(student);
		}
//		for (int k = 0; k <list.size(); k++) {
//			System.out.println(list.get(k));
//			
//		}

		// 错误答案
//		Object[] arr=new Object[list.size()];
//		String[] arr1=list.toArray(new String[list.size()]);

//		Student[] arr=new Student[list.size()];
//		for(int i=0;i<list.size();i++) {
//			arr[i]=list.get(i);
//		}
//		System.out.println(Arrays.toString(arr));
//		

//		(2)定义一个存储Person对象的ArrayList集合对象list1,并存入2个Person对象,定义一个存储Student对象的ArrayList集合对象list2,
//		并存入2个Student对象,调用addAll方法将list2的全部内容添加到list1中,遍历打印list1中的内容
		List<Person> list1 = new ArrayList<Person>();
		list1.add(new Person("中国人", 45, 100));
		list1.add(new Person("美国人 ", 20, 52));

		List<Student> list2 = new ArrayList<Student>();
		list2.add(new Student("曹操", 58, 65));
		list2.add(new Student("刘备", 85, 100));
		list1.addAll(list2);
		for (Person person : list1) {
			System.out.println(person);

		}

	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值