如果说一个二级联动框的结构设计,可以采用Map结构。

那么我下面有个问题记录一下:
假设有一个表格,每行初始的下拉选项是一样的,但是随着一级下拉框的改变,二级下拉框就会有所变化。
比如1,我选择地球,物种只有地球的物种。
如果2,我选择了火星,物种就只有火星的物种。

如图所示:

像这样的每行都不一样的下拉框,需要使用什么数据结构?
这其实是一个存储结构的设计问题,简单得很。当时没有想通,后面一想就通。

以java举例:

// 创建一个Hashtable,键为字符串,值为ArrayList<String>
Hashtable<String, ArrayList<String>> biology = new Hashtable<>();

// 添加一些物种
ArrayList<String> earth = new ArrayList<>();
mathCourses.add("people");
mathCourses.add("dinosaur");
//...
biology.put("earth", mathCourses);

ArrayList<String> mars = new ArrayList<>();
csCourses.add("铁沙虫");
csCourses.add("狗蝙蝠");
//...
biology.put("mars", csCourses);

执行步骤:

  1. 第二列的星球在加载数据数据时,需要加载for (String star : biology.keySet()) 所有的key;
  2. 这里设置一个事件,当第二列触发改变事件,就读取第第二列所选择的星球,在去读取该星球的物种,将所有物种加载到第三列物种上;
posted on 2023-11-23 10:33  Mysticbinary  阅读(23)  评论(0编辑  收藏  举报