list集合问题

andy1217 2014-12-23 07:06:42
多个班级的一个学生信息的list,怎么按照班级返回多个list啊
...全文
133 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
JPF1024 2014-12-23
  • 打赏
  • 举报
回复

map.put("rockets", gr);
map.put("vip", vip);
//如果要增加班级,只需要实现 Grade接口,并实现接口里面的getId,getName方法,然后添加到map里面就可以了
//但是打印的时候也要修改,你增加什么就在打印的时候增加什么
加油
JPF1024 2014-12-23
  • 打赏
  • 举报
回复
上代码,有点复杂,不过看一下就应该明白了,可以用java8运行,也可以用java7运行.

import java.util.*;

/**
 * first Java 8
 * <p>
 * <p>
 * Created by puruidong on 2014/12/23.
 */

interface Grade {
    int getId();

    String getName();
}

class Rockets implements Grade {

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private int id;
    private String name;
}

class Vip implements Grade {
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private int id;
    private String name;

}


public class Main {

    /**
     * 组织数据.
     */
    private static void trMap() {
        Map<Object, List<Grade>> map = new HashMap<Object, List<Grade>>();
        //添加班级1
        List<Grade> gr = new ArrayList<Grade>(12);
        List<Grade> vip = new ArrayList<Grade>(12);
        for (int i = 0; i < 10; i++) {
            //添加Rockets对象.
            Rockets rs = new Rockets();
            rs.setId(i);
            rs.setName("rockets_" + i);
            gr.add(rs);
            //添加vip对象.
            Vip vips = new Vip();
            vips.setId(i + 1);
            vips.setName("vip_" + i + 1);
            vip.add(vips);
        }
        map.put("rockets", gr);
        map.put("vip", vip);
        //打印
        // showMap(map);// java 8 版本打印map.
        showMap7(map);// java 7 版本打印map.
    }


    /**
     * 打印map.->java 8 版本.
     *
     * @param maps
     */
    private static void showMap(Map<Object, List<Grade>> maps) {
        for (Object o : maps.keySet()) {
            List<Grade> list = maps.get(o);
            list.stream().forEach(n -> System.out.println(n.getId() + "-->" + n.getName()));
        }
    }

    /**
     * 打印map.java7版本.
     *
     * @param maps
     */
    private static void showMap7(Map<Object, List<Grade>> maps) {
        List<Grade> g = new ArrayList<Grade>();
        for (Object o : maps.keySet()) {
            g = (List<Grade>) maps.get(o);
            for (int i = 0; i < g.size(); i++) {
                System.out.println(g.get(i).getId() + "-->" + g.get(i).getName());
            }
        }
    }


    public static void main(String[] args) {
        trMap();
    }
}
colie_li 2014-12-23
  • 打赏
  • 举报
回复
map.put(班级号,List<班级学生>)
  • 打赏
  • 举报
回复
你可以用map,用键存储班级,值存储每个班list

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧