Java 从csv文件设置父id
我想以此格式设置csv文件中的父id(例如国家、城市和邮政编码)Java 从csv文件设置父id,java,Java,我想以此格式设置csv文件中的父id(例如国家、城市和邮政编码) 如果别人有这种问题,我只是想帮助他们。随机id实际上是从数据库返回的id。 如果我有错误,请改正 public class Record { private String value; private int level; private int parent; private int id; public Record(String value, int level) { super(); this.value
如果别人有这种问题,我只是想帮助他们。随机id实际上是从数据库返回的id。 如果我有错误,请改正
public class Record {
private String value;
private int level;
private int parent;
private int id;
public Record(String value, int level) {
super();
this.value = value;
this.level = level;
}
Random rand = new Random();
ArrayList<Record> records = new ArrayList<Record>();
records.add(new Record("ελλαδα", 0));
records.add(new Record("αθηνα", 1));
records.add(new Record("13561", 2));
records.add(new Record("1044", 2));
records.add(new Record("τριπολη", 1));
records.add(new Record("801456", 2));
records.add(new Record("501457", 2));
records.add(new Record("κυπρος", 0));
records.add(new Record("λαρνακα", 1));
records.add(new Record("987654", 2));
records.add(new Record("654321", 2));
for(int i =0; i<records.size();i++) {
if(i==0){
records.get(i).setId(rand.nextInt(50000));
records.get(i).setParent(-1);
}
if(i > 0){
int prev_depth = records.get(i-1).getLevel();
if(records.get(i).getLevel()>prev_depth){
records.get(i).setParent(records.get(i-1).getId());
records.get(i).setId(rand.nextInt(50000));
}else if(records.get(i).getLevel()==prev_depth){
records.get(i).setId(rand.nextInt(50000));
records.get(i).setParent(records.get(i-1).getParent());
}else{
int ridx = i - 1;
while ((prev_depth != records.get(i).getLevel()) && (ridx >= 0)){
prev_depth = records.get( ridx).getLevel();
ridx -= 1;
}
records.get(i).setId(rand.nextInt(50000));
if(ridx==-1){
records.get(i).setParent(-1);
}else{
records.get(i).setParent(records.get(ridx).getId());
}
}
}
}
records.stream().forEach(System.out::println);
公共类记录{
私有字符串值;
私有整数级;
私人int父母;
私有int-id;
公共记录(字符串值,整数级){
超级();
这个值=值;
这个水平=水平;
}
Random rand=新的Random();
ArrayList记录=新的ArrayList();
添加(新记录(“ελλαδα”,0));
添加(新记录(“αθηνα”,1));
增加(新记录(“13561”,2));
增加(新记录(“1044”,2));
添加(新记录(“τριπολη”,1));
增加(新记录(“801456”,2));
添加(新记录(“501457”,2));
添加(新记录(“κ-π-ρ”,0));
添加(新记录(“λαρνακα”,1));
增加(新记录(“987654”,2));
增加(新记录(“654321”,2));
对于(int i=0;i 0){
int prev_depth=records.get(i-1.getLevel();
if(records.get(i).getLevel()>prev_depth){
records.get(i).setParent(records.get(i-1).getId());
记录.get(i).setId(rand.nextInt(50000));
}else if(records.get(i).getLevel()==prev_depth){
记录.get(i).setId(rand.nextInt(50000));
records.get(i).setParent(records.get(i-1).getParent());
}否则{
int-ridx=i-1;
while((prev_depth!=records.get(i.getLevel())&&(ridx>=0)){
prev_depth=records.get(ridx.getLevel();
ridx-=1;
}
记录.get(i).setId(rand.nextInt(50000));
如果(ridx==-1){
记录.get(i).setParent(-1);
}否则{
records.get(i).setParent(records.get(ridx).getId());
}
}
}
}
records.stream().forEach(System.out::println);
请向我们展示您已经编写的代码。另外,你的CSV文件不包含任何逗号,这听起来很奇怪。你的答案实际上并没有回答你的问题。您的问题是关于如何读取csv文件,您的答案只是使用随机数据。
public class Record {
private String value;
private int level;
private int parent;
private int id;
public Record(String value, int level) {
super();
this.value = value;
this.level = level;
}
Random rand = new Random();
ArrayList<Record> records = new ArrayList<Record>();
records.add(new Record("ελλαδα", 0));
records.add(new Record("αθηνα", 1));
records.add(new Record("13561", 2));
records.add(new Record("1044", 2));
records.add(new Record("τριπολη", 1));
records.add(new Record("801456", 2));
records.add(new Record("501457", 2));
records.add(new Record("κυπρος", 0));
records.add(new Record("λαρνακα", 1));
records.add(new Record("987654", 2));
records.add(new Record("654321", 2));
for(int i =0; i<records.size();i++) {
if(i==0){
records.get(i).setId(rand.nextInt(50000));
records.get(i).setParent(-1);
}
if(i > 0){
int prev_depth = records.get(i-1).getLevel();
if(records.get(i).getLevel()>prev_depth){
records.get(i).setParent(records.get(i-1).getId());
records.get(i).setId(rand.nextInt(50000));
}else if(records.get(i).getLevel()==prev_depth){
records.get(i).setId(rand.nextInt(50000));
records.get(i).setParent(records.get(i-1).getParent());
}else{
int ridx = i - 1;
while ((prev_depth != records.get(i).getLevel()) && (ridx >= 0)){
prev_depth = records.get( ridx).getLevel();
ridx -= 1;
}
records.get(i).setId(rand.nextInt(50000));
if(ridx==-1){
records.get(i).setParent(-1);
}else{
records.get(i).setParent(records.get(ridx).getId());
}
}
}
}
records.stream().forEach(System.out::println);