java基础(数组、集合、fastjson)

一.数组Array
1.数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单
2.声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。
3.数组只能存放类型一样的数据(基本类型/引用类型)

二、集合
1、集合主要分为Collection、Map两个接口;

2、Collection又分别被List和Set继承;
3、List被AbstractList实现【可重复、有序的对象】, 分为3个子类:ArrayList、LinkList、VecorList;
4、Set 被AbstractSet 实现【不可重复、无序的对象】,分为2个子类:HashSet、TreeSet;

5、Map 被AbstractMap 实现【提供key到value的映射,key无序、唯一】,分为2个子类:HashMap、TreeMap;

三、fastjson 

//import lombok.Data;
//
//@Data
public class car {
    public Integer num;
    public String color;

//    public String toString(){
//        return num+color;
//    }
    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

如果是用的@Data,下面toString打印出来的就是实际内容;

如果用的是setattr、getattr的方式,下面toString打印出来就是地址;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.List;


public class testfastjson {
    public static void main(String[] args) {
        String a = "[{\"num\":5,\"color\":\"blue\"},{\"num\":7,\"color\":\"blue1\"}]";
        List<car> c = JSONArray.parseArray(a, car.class);
//        得到2个car对象组成的数组
        System.out.println(c.toString());

        String b = "{\"num\":5,\"color\":\"blue\"}";
        car d = JSONObject.parseObject(b, car.class);
//        得到1个car对象
        System.out.println(d.toString());

    }
}

放个参考地址,后面继续学习

https://blog.csdn.net/qing_gee/article/details/104001021

关于JSONField

 

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.Date;

@Data
public class Person {
//JSONField常用参数:ordinal,name,format,serialize,deserialize
    @JSONField(ordinal = 5,name = "IDD")
    private Integer id;

    private String name;

    @JSONField(ordinal = 1)
    private Integer age;

//    serialize为false ,对象转换成json 会忽略该字段
//    deserialize为false ,json转换成对象,会忽略该字段
    @JSONField(format = "yyyy-MM-dd",serialize = true,deserialize = true)
    private Date birthDay;

    public static void main(String[] args) {
        Person person = new Person();
        person.setName("张三");
        person.setAge(30);
        person.setId(20);
        person.setBirthDay(new Date());
        System.out.println(person); // Person(id=20, name=张三, age=30, birthDay=Mon Sep 13 16:14:01 CST 2021)
//        对象转换成json
        String jsonString = JSON.toJSONString(person);
        System.out.println(jsonString); // {"birthDay":"2021-09-13","name":"张三","age":30,"IDD":20}

        String str="{\"id\":22,\"age\":33,\"name\":\"李四\",\"birthday\":\"2020-09-09 11:11:11\"}";
//        json转换成对象
        Person p=JSON.parseObject(str,Person.class);
        System.out.println(p); // Person(id=null, name=李四, age=33, birthDay=Wed Sep 09 00:00:00 CST 2020)
    }
}

 

 

 

posted @ 2021-05-16 21:40  whitewall  阅读(157)  评论(0)    收藏  举报