Java使用List<Map<K,V>>写复杂接口

本文介绍如何在Java中处理复杂的接口,特别是涉及List<Map<K,V>>的数据结构。通过示例展示了如何创建学生和女朋友实体类,并在main代码中进行操作。学习后,即使是复杂的接口也能轻松应对。" 48861271,1261416,Windows多线程编程:IOCP(I/O完成端口)详解,"['后端开发', 'Windows编程', '网络编程', '并发处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为一名安卓程序猿,以前都是调用后台的接口,最近在学javaweb,自己给自己写接口,但是一个json对象我写起来很简单,或者一层数组写起来很简单,那么复杂的接口我就很费劲了,之前不太会,只能自己拼接,有时候还错误一堆堆。经过了群里的指导和自己的摸索,再难的接口我也不怕了,接下来我把代码贴上:


学生实体类:

import java.util.List;

public class Student {
	private String name;
	private String sex;
	private int age;
	private List<GrilFriend> GfList;
	public String getName() {
		return name;
	}
	public List<GrilFriend> getGfList() {
		return GfList;
	}
	public void setGfList(List<GrilFriend> gfList) {
		GfList = gfList;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	
}



女朋友实体类:


public class GrilFriend {
	private String 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;
	}
	private int age;
}



main代码:


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.gson.Gson;


public class TestMap {
	static List<Map<String, Object>> userList;
	static List<Student> stulist;
	static List<GrilFriend> gfList;
	static List<GrilFriend> gfList2;
	
	
	public static void main(String args[]){
		//userList  一个装所有内容的List
		userList = new ArrayList<Map<String, Object>>();
		//stulist 学生属性的List
		stulist = new ArrayList<Student>();
		Student stu;//学生实体类
		gfList = new ArrayList<GrilFriend>();//第一个学生拥有的女朋友的list
		gfList2 = new ArrayList<GrilFriend>();//第二个学生拥有的女朋友的list
		
		//给两位同学添加几个女朋友
		addGrilFriend();		
		
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("EmployeeCode", 111);
		map.put("EmployeeName", 222);
		map.put("PassWord", 333);
		map.put("CompanyID", 444);
		map.put("CompanyName", 555);
		map.put("BratchName", 666);
		map.put("MobilePhone", 777);
		map.put("MemberGuid", 888);
		
		if (map.containsKey("PassWord")) {
			System.out.println("存在PassWord");
		}else {
			System.out.println("不存在PassWord");
		}
		
		stu = new Student();
		stu.setAge(22);
		stu.setName("Billy Lu");
		stu.setSex("M");
		stu.setGfList(gfList);
		stulist.add(stu);
		stu = new Student();
		stu.setAge(23);
		stu.setName("Bruce Lu");
		stu.setSex("M");
		stu.setGfList(gfList2);
		stulist.add(stu);
		map.put("stu", stulist);
		
		userList.add(map);
		if (map.containsValue("Billy Lu")) {
			System.out.println("存在Billy Lu");
		}else {
			System.out.println("不存在Billy Lu");
		}
		System.out.println("lsit="+new Gson().toJson(userList));
	}

	private static void addGrilFriend() {
		GrilFriend gf;
		gf = new GrilFriend();
		gf.setName("鞠婧祎");
		gf.setAge(23);
		gfList.add(gf);
		gf = new GrilFriend();
		gf.setName("杨幂");
		gf.setAge(28);
		gfList.add(gf);
		
		gf = new GrilFriend();
		gf.setName("唐嫣");
		gf.setAge(25);
		gfList2.add(gf);
		gf = new GrilFriend();
		gf.setName("关晓彤");
		gf.setAge(20);
		gfList2.add(gf);
	}
}

运行结果:

存在PassWord
不存在Billy Lu
lsit=[{"CompanyName":555,"EmployeeCode":111,"CompanyID":444,"stu":[{"name":"Billy Lu","sex":"M","age":22,"GfList":[{"name":"鞠婧祎","age":23},{"name":"杨幂","age":28}]},{"name":"Bruce Lu","sex":"M","age":23,"GfList":[{"name":"唐嫣","age":25},{"name":"关晓彤","age":20}]}],"BratchName":666,"MemberGuid":888,"EmployeeName":222,"PassWord":333,"MobilePhone":777}]


格式化一下:


[
    {
        "CompanyName": 555,
        "EmployeeCode": 111,
        "CompanyID": 444,
        "stu": [
            {
                "name": "Billy Lu",
                "sex": "M",
                "age": 22,
                "GfList": [
                    {
                        "name": "鞠婧祎",
                        "age": 23
                    },
                    {
                        "name": "杨幂",
                        "age": 28
                    }
                ]
            },
            {
                "name": "Bruce Lu",
                "sex": "M",
                "age": 23,
                "GfList": [
                    {
                        "name": "唐嫣",
                        "age": 25
                    },
                    {
                        "name": "关晓彤",
                        "age": 20
                    }
                ]
            }
        ],
        "BratchName": 666,
        "MemberGuid": 888,
        "EmployeeName": 222,
        "PassWord": 333,
        "MobilePhone": 777
    }
]


好了,楼主已经有这么多漂亮的女朋友了,好开心~~




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值