Java 自增问题
Java auto increment issue
我无法满足此要求。我有这个片段:
private String id;
private int age;
private static int index;
public Customer(int a) {
this.id = a + "C" + index;
index++;
this.age = a;
}
它工作正常。但问题是,我希望每个年龄段的索引都将重置为 1,例如 <10C1, 10C2> 当有 2 个 10 岁的客户时,如果您创建一个 20 岁的新客户,它会返回到 <20C1,20C2,..>。由于没有年龄限制,所以if语句似乎是不可能的。
在用户中使用静态地图:
private String id;
private int age;
private static map indexMap = new HashMap();
public Customer(int a) {
this.id = a + "C" + index;
index++;
this.age = a;
}
public synchronized static int getIndexOfAge(int age) {
if (!indexMap.contains(age)) {
indexMap.put(age, 1);
}
int theIndex = indexMap.get(age);
theIndex++;
indexMap.put(age, theIndex);
}
但我不得不说这真的不是一个好的编码方式。您应该使用类似 UserIndexFactory 的东西来创建用户索引。您还应该考虑线程安全和性能。
我无法满足此要求。我有这个片段:
private String id;
private int age;
private static int index;
public Customer(int a) {
this.id = a + "C" + index;
index++;
this.age = a;
}
它工作正常。但问题是,我希望每个年龄段的索引都将重置为 1,例如 <10C1, 10C2> 当有 2 个 10 岁的客户时,如果您创建一个 20 岁的新客户,它会返回到 <20C1,20C2,..>。由于没有年龄限制,所以if语句似乎是不可能的。
在用户中使用静态地图:
private String id;
private int age;
private static map indexMap = new HashMap();
public Customer(int a) {
this.id = a + "C" + index;
index++;
this.age = a;
}
public synchronized static int getIndexOfAge(int age) {
if (!indexMap.contains(age)) {
indexMap.put(age, 1);
}
int theIndex = indexMap.get(age);
theIndex++;
indexMap.put(age, theIndex);
}
但我不得不说这真的不是一个好的编码方式。您应该使用类似 UserIndexFactory 的东西来创建用户索引。您还应该考虑线程安全和性能。