`
jackroomage
  • 浏览: 1214975 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

合集框架实现的一对多,或多对多的实现过程

阅读更多

1、下面代码可以运行。一对多,一个人可以有多个Email地址:

 

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

class Person{
 private String name;
 private int age;
 
 public List allEmail;
 //这一句,是重点。
 public Person(){
    this.allEmail=new ArrayList();
 }
 
 
 public Person(String name,int age){
  this();
  this.setAge(age);
  this.setName(name);

 }
 
 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 List getAllEmail() {
  return allEmail;
 }

 public void setAllEmail(List allEmail) {
  this.allEmail = allEmail;
 }
 public String toString(){
  return "名字:"+this.name+", 年龄"+this.age;
 }
}

class Email{
   private String url;
   private String userName;
   private String flag;
   public Email(String url,String userName,String flag){

    this.setUrl(url);
    this.setUserName(userName);
    this.setFlag(flag);
  
   }
  
 public String getUrl() {
  return url;
 }
 public void setUrl(String url) {
  this.url = url;
 }
 public String getUserName() {
  return userName;
 }
 public void setUserName(String userName) {
  this.userName = userName;
 }
 public String getFlag() {
  return flag;
 }
 public void setFlag(String flag) {
  this.flag = flag;
 }
 public String toString(){
  return "url:"+this.url+", 名字:"+this.userName+", flag:"+this.flag;
 }
}


public class TestJH {
 public static void main(String[] args){
  Person p=new Person("jack",25);
  
  Email e1=new Email("www.163.com","jackandlucy","@Gmail.com");
  Email e2=new Email("www.263.com","jackandlucy","@Gmail.com");
  Email e3=new Email("www.363.com","jackandlucy","@Gmail.com");
  //这一步很重要,目的是人可以得到哪些,自己的Email地址、
        p.getAllEmail().add(e1); 
        p.getAllEmail().add(e2);
        p.getAllEmail().add(e3);
        System.out.println(p+"  他有哪些Email:");
            List  all=p.getAllEmail();
            Iterator ite= all.iterator();

            while(ite.hasNext()){
            Email e=(Email)ite.next();
            System.out.println(e);
             
            }
 }

}

 

2、下面是多对多,一个学生有多个老师,一个老师有多个学生。代码可以运行。

 

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

class Student{
 private String name;
    public List allTea;
   
 public Student(){
  this.allTea=new ArrayList();
 }
   
 public Student(String name){
  this();
  this.name=name;
 }
 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
 public List getAllTea(){
  return this.allTea;
 }
 public String toString(){
  return "学生的名字:"+this.name;
 }
}

class Teacher{
 private int sal;
 public List allStu;
 
 public Teacher(){
  this.allStu=new ArrayList();
 }
 
 public Teacher(int sal){
  this();
  this.sal=sal;
 }

 public int getSal() {
  return sal;
 }

 public void setSal(int sal) {
  this.sal = sal;
 }
 public List getStu(){
  return this.allStu;
 }
 public String toString(){
  return "老师的薪水是:"+this.sal;
 }
}


public class TestMoseToMose {
 public static void main(String[] args){
  Student st=new Student("jack");
  
  Teacher tc1=new Teacher(12);
  Teacher tc2=new Teacher(234);
  Teacher tc3=new Teacher(567);
  
  st.getAllTea().add(tc1);
  st.getAllTea().add(tc2);
  st.getAllTea().add(tc3);
  
  System.out.println(st+"  他有哪些老师:");
  Iterator ite1=st.getAllTea().iterator();
  while(ite1.hasNext()){
     Teacher t =(Teacher)ite1.next();
     System.out.println(t);
  }
  
  Teacher te=new Teacher(12);
  
  Student st1=new Student("jack");
  Student st2=new Student("lucy");
  Student st3=new Student("david");
  
  te.getStu().add(st1);
  te.getStu().add(st2);
  te.getStu().add(st3);
  
  System.out.println(te+"  他有哪些学生:");
  Iterator it=te.getStu().iterator();
  while(it.hasNext()){
   Student s=(Student)it.next();
   System.out.println(s);
  }
  
  
 }

}

 

3、不难,运行一下看看。

分享到:
评论

相关推荐

    能实现一对多关联的通用EXCEL导入功能

    在IT行业中,开发一个能实现一对多关联的通用EXCEL导入功能是一项常见的需求,尤其是在数据管理、数据分析或者系统集成的场景下。这个功能允许用户通过上传Excel文件来批量导入包含复杂关系的数据,例如一个学生可以...

    实现一个简单的RPC框架

    本篇将详细讲解如何使用socket、反射和序列化等技术来实现一个简单的RPC框架。 首先,让我们了解RPC的基本原理。在RPC模型中,客户端(Client)发起一个函数调用请求,这个请求包含了目标函数的名称和参数。RPC框架...

    ssm框架上实现国际化/多语言

    在SSM框架上实现国际化和多语言功能,可以使得应用程序能够适应不同国家和地区用户的语言需求,提升用户体验。以下将详细介绍如何在SSM框架中实现这一功能。 首先,我们需要理解“国际化”(Internationalization)...

    使用SSH框架实现简单用户管理

    在IT行业中,SSH框架是Java Web开发中常用的一个集成框架,它由SpringMVC、Spring和Hibernate三个组件组成。这个框架组合提供了强大的功能,能够帮助开发者高效地构建复杂的Web应用程序,尤其是在用户管理方面。下面...

    一步一个脚印实现一个自己的简易MVVM框架

    总之,实现一个简易的MVVM框架是一个很好的学习实践,它涵盖了数据绑定、事件处理、对象观察等多个关键点。在这个过程中,你会接触到JavaScript的面向对象编程、DOM操作、数据监听等技术,这些都是成为专业前端...

    ssh框架实现管理系统

    这个管理系统就是基于SSH框架实现的,利用这三种技术的优势,构建了一个功能完善的后台管理平台。下面将详细解释SSH框架的核心概念、工作原理以及它们在实际应用中的作用。 1. **Struts2**: Struts2是一个基于MVC...

    ssm框架实现简单的增删改查

    接下来,我们将详细探讨如何利用SSM框架实现一个基础的增删改查(CRUD)功能。 首先,**SpringMVC** 是Spring框架的一个模块,主要用于处理HTTP请求,实现前端控制器的设计模式。在SSM项目中,SpringMVC作为控制器...

    利用Hibernate框架实现学生管理信息系统

    ### 利用Hibernate框架实现学生管理信息系统 #### 引言 在进行J2EE标准的项目开发时,创建和维护数据持久层是关键环节之一,其设计的成功与否往往对整个项目的开发进度和质量有着至关重要的影响。传统的数据库访问...

    基于Python的Flask WEB框架实现后台权限管理系统

    总的来说,基于Python的Flask框架实现后台权限管理系统是一个综合性的任务,涵盖了Web开发的多个方面,包括前端交互、后端逻辑、数据库操作以及安全性。通过熟练掌握Flask和相关的扩展库,可以构建出高效、稳定的...

    ssm框架实现订单管理系统

    在本项目"ssm框架实现订单管理系统"中,开发者利用SSM框架来构建一个完整的订单管理功能,其中包括了对订单的查询、角色的管理等多个模块。以下是对SSM框架及订单管理系统相关知识点的详细解释: 1. **Spring框架**...

    SSM框架实现注册登录功能

    9. **异常处理**:在实现过程中,应充分考虑可能的异常情况,如数据库连接问题、SQL执行错误等,并通过异常处理机制给出友好的错误提示。 10. **测试**:完成功能后,进行单元测试和集成测试,确保各个组件协同工作...

    xposed框架安装包合集

    这个框架的安装包合集包含了适用于不同Android版本的版本,为用户提供了一个灵活的方式来定制和优化自己的设备。 首先,我们来看一下提供的三个安装包: 1. **de.robv.android.xposed.installer_3.1.1_39.apk**:...

    如何实现一个简单的RPC框架

    实现一个简单的RPC框架主要涉及以下几个关键点: 1. **网络通信库**:Netty是一个高性能、异步事件驱动的网络应用框架,常用于构建高并发、低延迟的服务器。在RPC框架中,Netty可以处理客户端与服务端之间的网络...

    基于Android开发框架的新闻类APP的设计与实现.pdf

    在设计和实现过程中,我们首先对Android系统架构进行了介绍,包括应用层、应用架构层、系统运行库层、Linux内核层等四个主要功能层。然后,我们对基于Android开发框架的设计进行了详细介绍,包括框架的架构设计、...

    C# 实现 AOP微型框架

    6. **C#实现**:在VS2008中,实现AOP框架可能涉及到使用`System.Reflection`来获取类型信息,然后利用`System.Reflection.Emit`或第三方库创建动态代理类,实现对方法调用的拦截和通知的插入。 7. **微型框架**:与...

    C++开发web服务框架之HTTP Web框架的设计与实现

    在C++领域,开发Web服务框架,特别是HTTP Web...通过这个过程,开发者不仅可以深化对C++语言和网络编程的理解,还能掌握软件架构和设计的实践技能。Project2可能包含了这个框架的具体实现代码,供进一步学习和研究。

    COS框架实现上传稍加修改即可实现多文件上传

    本文将深入探讨如何使用COS框架实现单文件上传,并进一步说明如何通过稍加修改实现多文件上传。 首先,让我们了解COS的基本概念。COS是一种分布式存储服务,它允许用户存储和检索任意数量的数据,无论数据大小。...

    简单ssm框架实现增删改查

    这个"简单ssm框架实现增删改查"的项目,旨在提供一个基础的SSM框架实例,帮助开发者理解并快速上手SSM的集成与应用。以下将详细介绍SSM框架的核心组件及其在项目中的作用。 1. **Spring框架**:Spring作为一款全面...

    基于Spring Boot2.0框架的信息管理系统的设计与实现

    由于信息管理系统是一个涉及用户个人信息的系统,因此在设计和实现过程中,对数据的安全性和隐私保护也要给予充分的考虑。系统设计者需要实现各种安全措施,如用户认证和授权、数据传输加密、数据库加密等,确保用户...

    6.2 裸机程序任务调度框架实现.rar

    本文将深入探讨“6.2 裸机程序任务调度框架实现”这一主题,结合GD32F303单片机的应用场景,详细解析源码和实现细节。 GD32F303是一款基于ARM Cortex-M3内核的高性能微控制器,广泛应用于工业控制、物联网设备以及...

Global site tag (gtag.js) - Google Analytics