您的位置:首页 > 大数据 > 人工智能

相同坐标信息的统计----AIS信息统计

2016-04-28 16:50 453 查看
import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
* Created by lwc on 4/27/16.
*/
public class AisCount {
public static void main(String[] args) throws Exception{
//inFile: 输入文件的路径+名称,可以为相对路径也可以为绝对路径
//outFIle: 输出文件的路径+名称,同上
String inFile = "1";
String outFile = "outFIle";
countAis(inFile, outFile);
}
public static void countAis(String inFile, String outFile) throws Exception{
int initLines = 100000;
HashMap<Point, Pollution> resultHashMap = new HashMap<>(initLines);
File inputFile = new File(inFile);
if(!inputFile.exists() || inputFile.isDirectory()) {
System.out.println("Error input File");
System.exit(-1);
}
BufferedReader br = new BufferedReader(new FileReader(inputFile));
String line = br.readLine();

while (line != null) {

String[] parts = line.split(",");

if(parts.length == 9) {
Point point = new Point(Integer.valueOf(parts[1]), Integer.valueOf(parts[2]));
Pollution pollution = new Pollution(Double.valueOf(parts[3]),Double.valueOf(parts[4]),Double.valueOf(parts[5]),Double.valueOf(parts[6]),Double.valueOf(parts[7]));
System.out.println("insert : " + point + "" + pollution);
if(resultHashMap.containsKey(point)) {
resultHashMap.put(point, resultHashMap.get(point).add(pollution));
} else {
resultHashMap.put(point, pollution);
}
}

line = br.readLine();
}
try{} finally {
br.close();
}
File outputFile = new File(outFile);
if(outputFile.exists()) {
outputFile.delete();
System.out.println("Delete old file");
}
BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile));
Iterator iterator = resultHashMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
Point point = (Point) entry.getKey();
Pollution pollution = (Pollution) entry.getValue();
System.out.println("Write : " + point + "" + pollution + "\r\n");
bw.write(point + "" + pollution + "\r\n");
}
try{} finally {
bw.close();
}
}
}
class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}

@Override
public String toString() {
return x + "\t" + y + "\t";
}

@Override
public int hashCode() {
int result = x;
result = 31 * result + y;
return result;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

Point point = (Point) o;

if (x != point.x) return false;
return y == point.y;

}
}
class Pollution {
private double co2;
private double co;
private double so2;
private double nox;
private double pm;

public Pollution(double co2, double co, double so2, double nox, double pm) {
this.co2 = co2;
this.co = co;
this.so2 = so2;
this.nox = nox;
this.pm = pm;
}
public Pollution add(Pollution  pollution) {
if(pollution != null && pollution instanceof Pollution) {
return new Pollution(pollution.co2 + this.co2, pollution.co + this.co, pollution.so2 + this.so2, pollution.nox + this.nox, pollution.pm + this.pm);
} else {
return this;
}
}

@Override
public String toString() {
return co2 + "\t" + co +"\t" + so2 +"\t" + nox + "\t" + pm + "\t";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java