21xrx.com
2024-12-22 23:42:12 Sunday
登录
文章检索 我的文章 写文章
Java学习笔记:一对多关系的实现
2023-06-16 19:56:28 深夜i     --     --
Java List Map 一对多

在Java编程中,经常会遇到一对多的关系,例如一个班级有多个学生,一个订单有多个商品等等。如何在代码中实现这种一对多的关系呢?本文将介绍使用Java中的List和Map数据结构来实现一对多关系的方法。

List:一对多中的"多"

List是Java中最常见的数据结构之一,表示一组有序的元素集合。在一对多的关系中,我们可以使用List来表示"多"的一方,例如一个班级中有多个学生,我们可以用一个List来存储这些学生。下面是一个简单的Java程序演示如何使用List实现班级学生的管理:


import java.util.ArrayList;

import java.util.List;

public class Classroom {

  // 一个班级有多个学生,使用List来存储学生

  private List students = new ArrayList ();

  public void addStudent(Student student) {

   students.add(student);

  }

  public void removeStudent(Student student) {

   students.remove(student);

  }

  public List getStudents()

   return students;

 

}

public class Student {

  private String name;

  public Student(String name)

   this.name = name;

 

  public String getName()

   return name;

 

  public void setName(String name)

   this.name = name;

 

}

public class Main {

  public static void main(String[] args) {

   // 创建一个班级

   Classroom classroom = new Classroom();

   // 添加学生

   Student student1 = new Student("小明");

   Student student2 = new Student("小红");

   classroom.addStudent(student1);

   classroom.addStudent(student2);

   // 获取学生列表并输出

   List students = classroom.getStudents();

   for (Student student : students) {

     System.out.println(student.getName());

   }

  }

}

上述程序中,我们创建了一个Classroom类来表示一个班级,其中使用List来存储学生。在Main类中,我们添加了两个学生到班级中,并通过getStudents()方法获取班级学生列表并输出。

Map:一对多中的"一"

Map也是Java中非常常用的数据结构之一,它表示一组键值对集合,其中每个键对应一个值。在一对多的关系中,我们可以使用Map来表示"一"的一方,例如一个订单中有多个商品,我们可以用一个Map来存储这些商品。下面是一个简单的Java程序演示如何使用Map实现订单商品的管理:


import java.util.HashMap;

import java.util.Map;

public class Order {

  // 一个订单有多个商品,使用Map来存储商品

  private Map items = new HashMap ();

  public void addItem(Item item) {

   items.put(item.getName(), item);

  }

  public void removeItem(String itemName) {

   items.remove(itemName);

  }

  public Map getItems() >

   return items;

 

}

public class Item {

  private String name;

  private double price;

  public Item(String name, double price)

   this.name = name;

   this.price = price;

 

  public String getName()

   return name;

 

  public void setName(String name)

   this.name = name;

 

  public double getPrice()

   return price;

 

  public void setPrice(double price)

   this.price = price;

 

}

public class Main {

  public static void main(String[] args) {

   // 创建一个订单

   Order order = new Order();

   // 添加商品

   Item item1 = new Item("苹果", 5.0);

   Item item2 = new Item("香蕉", 3.0);

   order.addItem(item1);

   order.addItem(item2);

   // 获取商品列表并输出

   Map items = order.getItems();

   for (String itemName : items.keySet()) {

     Item item = items.get(itemName);

     System.out.println(item.getName() + ": " + item.getPrice());

   }

  }

}

上述程序中,我们创建了一个Order类来表示一个订单,其中使用Map来存储商品。在Main类中,我们添加了两个商品到订单中,并通过getItems()方法获取订单商品列表并输出。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复