java基础--集合练习

1.用数组表示多重性

 练习目标-在类中使用数组作为模拟集合操作: 在本练习中,将用数组实现银行与客户间的多重关系。

任务

 对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的数组实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。

  1. 创建 Bank

   2.Bank类增加两个属性:customers(Customer对象的数组)numberOfCustomers(整数,跟踪下一个customers数组索引)

     3.添加公有构造器,以合适的最大尺寸(至少大于5)初始化customers数组。

     4.添加addCustomer方法。该方法必须依照参数(姓,名)构造一个新的Customer对象然后把它放到customer数组中。还必须把numberofCustomers属性的值加1

     5.添加getNumOfCustomers 访问方法,它返回numberofCustomers属性值。

    6.添加getCustomer方法。它返回与给出的index参数相关的客户。

    7.编译并运行TestBanking程序。可以看到下列输出结果:

    Customer [1] is Simms,Jane

    Customer [2] is Bryant,Owen

    Customer [3] is Soley,Tim

    Customer [4] is Soley,Maria

public class Bank {
    private  Customer[] customers ; //创建对象属性
    private int numberOfCustomers;
    public int getNumberOfCustomers() {
        return numberOfCustomers;
    }
    public void setNumberOfCustomers(int numberOfCustomers) {
        this.numberOfCustomers = numberOfCustomers;
    }
        //在构造方法中初始化数组
    public Bank()
    {
         customers = new Customer[6];
        
    }
      //构造Customer对象并把它放入数组中
    public void addCustomer(String f,String l)
    {     
        this.customers[numberOfCustomers] =new Customer(f,l);
        
        this.numberOfCustomers+=1;
        
    }

public int getnumberOfCustomers()
{
    return this.numberOfCustomers;
}
//获取客户数量的方法
public Customer getcustomers(int i)
{
    return this.customers[i];
}
}
public class Customer {
private String f;
private String l;
public String getF() {
    return f;
}
public void setF(String f) {
    this.f = f;
}
public String getL() {
    return l;
}
//重写toString方法
@Override
public String toString() {
    // TODO 自动生成的方法存根
    return this.getF()+" ,"+this.getL();
}
public void setL(String l) {
    this.l = l;
}
//Customer对象的构造方法
public Customer(String f,String l)
{
    this.f =f;
    this.l=l;
}
}
public class TestBank {

    public static void main(String[] args) {
    Bank b =new Bank();
    b.addCustomer("Simms","Jane");
    b.addCustomer("Bryant", "Owen");
    b.addCustomer("Soley", "Tim");
    b.addCustomer("Soley", "Maria");
    for(int i =0;i<b.getnumberOfCustomers();i++)
    {
        System.out.println("Customer" +"["+(i+1)+"]"+" "+"is"+" "+b.getcustomers(i));
    }
    System.out.println("第三个客户是:"+b.getcustomers(2));
    }

}

2.List表示多重性

练习目标-在类中使用List作为模拟集合操作: 在本练习中,将用List实现银行与客户间的多重关系。

任务

对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的List实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。

1.创建 Bank

2.Bank类增加两个属性:customers(Customer对象的List)numberOfCustomers(整数, 当前Customer对象的数量)

3.添加公有构造器,初始化customersList

4.添加addCustomer方法。该方法必须依照参数(姓,名)构造一个新的Customer对象然后把它放到customerList中。

5.添加getNumOfCustomers 访问方法,它返回numberofCustomers属性值。

6.添加getCustomer方法。它返回与给出的index参数相关的客户。

7.编译并运行TestBanking程序。可以看到下列输出结果:

   Customer 1 is Simms,Jane

   Customer 2 is Bryant,Owen

   Customer 3 is Soley,Tim

   Customer 4 is Soley,Maria

  当前客户数量 = 4

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

public class Bank {
private List<Customer>customers; //集合属性
private int numberOfCustomers; //索引属性
public Bank()
{
    customers = new ArrayList<>();
}
//往customers里面添加Customer对象
public void addCustomer(String f,String l)
{
    Customer c =new Customer(f,l);
    customers.add(c);
}    
//添加索引方法,并返回索引数
public int getNumOfCustomers()
{
    numberOfCustomers =customers.size();
    return numberOfCustomers;
}

public Customer getCustomer(int i)
{
    return customers.get(i);
}
}
public class Customer {
    private String firstname;
    private String lastname;
    public String getFirstname() {
        return firstname;
    }
    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }
    public String getLastname() {
        return lastname;
    }
    public void setLastname(String lastname) {
        this.lastname = lastname;
    }
    public Customer(String f,String l)
    {
        this.firstname =f;
        this.lastname =l;
    }
    @Override
    public String toString() {
        // TODO 自动生成的方法存根
        return this.firstname+" ,"+this.lastname;
    }
    
}
public class TestBanking {

    public static void main(String[] args) {
        Bank b = new Bank();
        b.addCustomer("Simms", "Jane");
        b.addCustomer("Bryant", "Owen");
        b.addCustomer("Soley", "Tim");
        b.addCustomer("Soley", "Maria");
        for(int i =0;i<b.getNumOfCustomers();i++)
        {
            System.out.println("Customer"+" "+(i+1)+" "+" is"+" "+b.getCustomer(i));
        }
        System.out.println("第二个客户是:"+b.getCustomer(1));
        System.out.println("客户的数量是:"+b.getNumOfCustomers());
    }

}

原文地址:https://www.cnblogs.com/miracle-0807/p/5907868.html