java 0-99自动生成编码,例如编码删除3的编码,下次新增直接新增为3的编
时间: 2024-02-09 15:12:20 浏览: 95
好的,我理解你的问题了。那么,你需要一个可以自动生成0-99编码的程序,并且可以删除指定编码,并在下次新增时可以直接使用这个被删除的编码。这可以通过以下Java程序实现:
```java
import java.util.ArrayList;
import java.util.List;
public class CodeGenerator {
private List<Integer> availableCodes;
public CodeGenerator() {
availableCodes = new ArrayList<>();
for (int i = 0; i < 100; i++) {
availableCodes.add(i);
}
}
public int generateCode() {
if (availableCodes.isEmpty()) {
throw new RuntimeException("All codes have been used!");
}
int code = availableCodes.remove(0);
return code;
}
public void removeCode(int code) {
if (!availableCodes.contains(code)) {
throw new RuntimeException("Code " + code + " is not available!");
}
availableCodes.remove(Integer.valueOf(code));
}
public void addCode(int code) {
if (availableCodes.contains(code)) {
throw new RuntimeException("Code " + code + " is already available!");
}
availableCodes.add(code);
availableCodes.sort(null);
}
}
```
在这个程序中,我们使用了一个List来存储所有可用的编码。当需要生成一个编码时,我们从List中取出第一个编码,并将其从List中移除,保证了生成的编码不会重复。当需要删除一个编码时,我们首先检查这个编码是否可用,如果可用,则将其从List中移除。当需要新增一个编码时,我们首先检查这个编码是否已经可用,如果已经可用,则抛出异常。否则,我们将这个编码添加到List中,并重新将List排序,保证List中的编码始终按升序排列。
你可以使用以下代码来测试这个程序:
```java
public static void main(String[] args) {
CodeGenerator generator = new CodeGenerator();
int code1 = generator.generateCode();
System.out.println("Generated code: " + code1);
int code2 = generator.generateCode();
System.out.println("Generated code: " + code2);
generator.removeCode(3);
int code3 = generator.generateCode();
System.out.println("Generated code: " + code3);
generator.addCode(3);
int code4 = generator.generateCode();
System.out.println("Generated code: " + code4);
}
```
这个测试程序首先生成两个编码,然后删除编码3,并生成一个新的编码,最后重新添加编码3并生成一个新的编码。你可以运行这个程序来测试这个程序是否符合你的要求。