java:类集操作,多对多的关系
java:类集操作,多对多的关系
//一个课程有多个学生报名,
//一个学生可以报名多个课程
demo.java, Student.java, Course.java'
public class Course {
private String name;
private int course;
private List<Student> allStudent;
public Course() {
this.allStudent = new ArrayList<Student>();
}
public Course(String name, int course) {
this();
this.name = name;
this.course = course;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCourse() {
return course;
}
public void setCourse(int course) {
this.course = course;
}
public List<Student> getAllStudent() {
return allStudent;
}
public String toString()
{
return "课程:"+this.name +",学分:"+this.course;
}
}
Student.java
public class Student {
private String name;
private int age;
private List<Course> allCourse;
public Student() {
this.allCourse = new ArrayList<Course>();
}
public Student(String name, int age) {
this();
this.name = name;
this.age = age;
}
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<Course> getAllCourse() {
return allCourse;
}
public String toString()
{
return "学生:"+this.name + ",年龄:"+this.age;
}
}
demo.java
//一个学生可以报名多个课程
Course c1 = new Course("java",5);
Course c2 = new Course("linux",5); Student st1 = new Student("张三",22);
Student st2 = new Student("李四",33);
Student st3 = new Student("王五",32);
Student st4 = new Student("田七",29);
Student st5 = new Student("赵六",28); //第一课程
c1.getAllStudent().add(st1);
c1.getAllStudent().add(st3);
st1.getAllCourse().add(c1);
st2.getAllCourse().add(c2); //第二课程
c2.getAllStudent().add(st1);
c2.getAllStudent().add(st2);
c2.getAllStudent().add(st3);
c2.getAllStudent().add(st4);
c2.getAllStudent().add(st5);
st1.getAllCourse().add(c2);
st2.getAllCourse().add(c2);
st3.getAllCourse().add(c2);
st4.getAllCourse().add(c2);
st5.getAllCourse().add(c2); //输出
System.out.println(c1);
Iterator<Student> stu = c1.getAllStudent().iterator();
while(stu.hasNext())
{
System.out.println("__" + stu.next());
}
System.out.println(st1);
Iterator<Course> cour = st1.getAllCourse().iterator();
while(cour.hasNext())
{
System.out.println( "__" + cour.next());
}
输出的结果为:
课程:java,学分:5
__学生:张三,年龄:22
__学生:王五,年龄:32
学生:张三,年龄:22
__课程:java,学分:5
__课程:linux,学分:5
java:类集操作,多对多的关系的更多相关文章
- java:类集操作总结
java:类集操作总结 1.List接口允许有重复的元素,Set接口中不允许有重复的元素 2.ArrayList,和Vector的区别 3.set依靠equals和hashCode区分 4.TreeS ...
- Java类集框架详细汇总-底层分析
前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...
- 浅谈java类集框架和数据结构(1)
在另外一篇博客我简单介绍了java类集框架相关代码和理论. 这一篇博客我主要分析一下各个类集框架的原理以及源码分析. 一:先谈谈LinkedList 这是LinkedList源码的开头,我们能看到几点 ...
- 专题笔记--Java 类集框架
Java 类集框架 1. Java类集框架产生的原因 在基础的应用中,我们可以通过数组来保存一组对象或者基本数据,但数组的大小是不可更改的,因此出于灵活性的考虑和对空间价值的担忧,我们可以使用链表来实 ...
- 浅谈java类集框架和数据结构(2)
继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...
- java类集开发中一对多和多对多的关系的实现
摘自<java开发实战经典>李兴华.著 一对多的关系 一个学校可以包含多个学生,一个学生属于一个学校,那么这就是一个典型的一对多关系,此时就可以通过类集进行关系的表示. 在定义Studen ...
- Java -- Java 类集 -- 目录
13.1 认识类集 13.1.1 基本概念 13.1.2 类集框架主要接口 13.2 Collection接口 13.2.1 Collection接口的定义 13.2.2 Collection子接口的 ...
- 5.1 java类集(java学习笔记)Collection、List接口及ArrayList、LinkedList类。
一.类集 类集就是一组动态的对象数组,说类集可能不好理解,类集又称容器,容器顾名思义就是放东西的地方. 类集就是为了让我们更加简洁,方便的存放.修改.使用数据的. 二.Collection接口 我们看 ...
- Java 类集初探
类集 类集:主要功能就是Java数据结构的实现(java.util) 类集就是动态对象数组(链表也是动态数组) Collection 接口* Collection是整个类集之中单值保存的最大 父接口 ...
随机推荐
- freemarker 开始时间与当前时间进行比较
<#if startTime?datetime lt .now?datetime>:年月日时分秒比较 <#if startTime?date lt .now?date>:年月日 ...
- windows upd广播包无法发送到局域网解决方法
不能发送广播包的电脑和可以发送广播报的主机对比,发现不能发送广播报的主机上都有安装虚拟机,也有虚拟网卡,将所有的虚拟网卡关闭,然后再进行测试,都正常了,无论是Win7,Win10还是Xp. 禁用VMw ...
- linux下网卡bonding配置
linux下网卡bonding配置 章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...
- Python3 多线程 学习 threading
#-*- coding:utf-8 --*- #多线程测试 import time import datetime import threading def worker(): print(" ...
- vue实践---vue结合 promise 封装原生ajax
有时候不想使用axios这样的外部依赖,想自己封装ajax,这里有两种方法 方法一,在单个页面内使用 封装的代码如下: beforeCreate () { this.$http = (() => ...
- 2016/05/17 thinkphp3.2.2 分页的使用:①在Home下设置Publics文件夹或在thinkPHP下library的vender 把page.class.php 考贝进入 ②通过new 实例化方式调用 $page=new \Home\Publics\Page($total,3);
注意分页的方法有两种:一种是thinkphp3.2 自带的 另一种是之前新闻页用过的 显示效果稍有差别 显示效果: 细节问题: ①搜索页面 要加session判断 和 分页 ②修改 ...
- 【BZOJ3743】[Coci2015]Kamp 树形DP
[BZOJ3743][Coci2015]Kamp Description 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举 ...
- java 基于tomcat的数据源案例
1.在context中定义数据源 <?xml version="1.0" encoding="UTF-8"?> <Context path=& ...
- Delphi 64与32位的差异
Delphi 64与32位的差异 最近,Delphi推出了64位预览版本, 我做为一个忠实的Delphier, 看到这消息后,第一时间学习,并写下这个做为以后的参考资料. 相同点: 在Delphi ...
- 'gbk' codec can't encode character '\xa0' in position 34: illegal multibyte sequence
今天在爬某广告贼多的网站遇到的问题,简单记录下