java有什么数据结构可以保存“一对多”关系的?

java有什么数据结构可以保存“一对多”关系的?,第1张

没有直接一个键对应多个值的,但是可以想一些办法。\x0d\x0a比如把指定键所对应的值用一个组合数据来表示。\x0d\x0aexample:\x0d\x0aimport java.util.Map\x0d\x0aimport java.util.HashMap\x0d\x0aimport java.util.ArrayList\x0d\x0a\x0d\x0apublic class Example {\x0d\x0a\x0d\x0aprivate static Map>map\x0d\x0aprivate static ArrayList teacherList\x0d\x0aprivate static ArrayList studentList\x0d\x0a\x0d\x0apublic static void main(String [] args) {\x0d\x0amap = new HashMap>()\x0d\x0ateacherList = new ArrayList()\x0d\x0astudentList = new ArrayList()\x0d\x0amap.put("teacher", teacherList)\x0d\x0amap.put("student", studentList)\x0d\x0ateacherList.add("张三")\x0d\x0ateacherList.add("李四")\x0d\x0astudentList.add("王五")\x0d\x0astudentList.add("赵六")\x0d\x0aSystem.out.println("教师姓名:" + map.get("teacher"))\x0d\x0aSystem.out.println("学生姓名:" + map.get("student"))\x0d\x0a}\x0d\x0a}

1.数据库>>

1的实例作为主键表, N的实例作为外键表引用1的实例主键表示他们的关系

2. JavaBean>>

  a.主键表实例类, 基本属性即可, 如果需要从主键bean中找到外键bean, 需要在主键bean中声明泛型集合保存

b.外键表实例类

1). 基本属性

2). 主键表实例引用, 用于表明主外键关系

Code以QQ号与用户为例:  (QQ)N:1(用户)

/**

* QQ

*/

public class QQ{

    private String id

    private String password

    // 用户实例引用, 这里表示当前对象与哪个用户相关

    private User user

    

    // 此处省略getter和setter属性读取器...

}

/**

* 用户

*/

public class User{

    //   UUID算法, 防止数据库合并时导致主键列冲突问题

    private String id

    private String userName

    // 此处省略getter和setter属性读取器...

}

/**

* 模拟场景

*/

public static void main(String[] args){

    // 从数据库查询出QQ对象, 以及QQ对象所属的用户

    Object[] params = {}

    QQ qq = QQDao.getQQ(params)

    

    // 获取当前QQ的用户信息

    User user = QQ.getUser()

    String id = user.getId()

    

    //...

}

完全手打, 如果有什么不明白的欢迎追问^^

希望能帮助你

1)一对一的关系

例如:一个人对应一个唯一的身份z号,即为一对一的关系。

2)一对多关系

例如:一个班级对应多名学生,即为一对多关系

3)多对多关系

例如:一个学生可以选多门课程,而同一门课程可以被多个学生选修,彼此的对应关系即是多对多关系。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10711416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存