2018.6.29 1.读取JSON数据 1)首先需要有 fastjson-1.2.7.jar 包 2)创建一个数据类型的对象,用来封装 3)读取数据,并转换为java对象类型。
BufferedReader reader = new BufferedReader(new FileReader("d:/data/movie.txt"));
String len;
while((len = reader.readLine())!=null) {
Movie movie = JSON.parseObject(len,Movie.class);//进行转换
4)最重要的: Movie movie = JSON.parseObject(len,Movie.class); 把对象转换成JSON格式
Movie m = new Movie(123,1,1234567,1);
String jsonString = JSON.toJSONString(m);
.二叉树查找示例
public static String getProvinceByLong(String ip) {
long l = parseIpToLong(ip);
int left = 0;
int right = list.size()-1;
int middle = 0;
while(left<=right) {
middle = (left+right)/2;
Ip ip2 = list.get(middle);
if(l>=ip2.getStartLongIp()&&l<=ip2.getEndLongIp()) {
return list.get(middle).getProvince();
}
else if(l<ip2.getStartLongIp()) {
right = middle-1;
}else if(l>ip2.getEndLongIp()) {
left = middle+1;
}
}
return null;
}
3.Ip转换为long类型
public static long parseIpToLong(String ip) {
long longIp = 0l;
if(ip==null){
return longIp;
}
String[] split = ip.split("\\.");
if(split.length == 4) {
for(int i =0;i<4;i++) {
long l = Long.parseLong(split[i]);
longIp |= l<<((3-i)<<3);
}
}
return longIp;
}
4.java排序
/**
* 排序
* @return
*/
public static List<Entry<String,Integer>> sort(Map<String,Integer> map) {
ArrayList<Entry<String,Integer>> list2 = new ArrayList<>(map.entrySet());
Collections.sort(list2,new Comparator<Entry<String,Integer>>() {
@Override
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
// TODO Auto-generated method stub
return o2.getValue()-o1.getValue();//降序
}
});
return list2;
}
5.时间排序 假设 o1中时间为“2018-01-01” 按照这个格式对SimpleDateFormat进行构造。进行时间类型的比较
String d1 = o1.getData();
String d2 = o2.getData();
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date p1 = sd.parse(d1);
Date p2 = sd.parse(d2);
res = p1.before(p2)?-1:1;