【发布时间】:2021-12-27 05:11:09
【问题描述】:
我想知道是否有一种方法或库可以用来执行以下操作:
我有一个对象数组列表,其中每个 obj 都有一个名称。
列表必须始终是唯一的,最多包含 5 个元素,例如 [E1,E2,E3]
例如,如果列表具有初始形式 [E3,E5] 并且我添加了一个对象,它的名称应该是 E1 并且列表将是 [E1,E3,E5] 或 [E3,E5,E1] 没关系,只要名称是唯一的并且该项目从 1 到 5 添加到列表中。
如果添加另一个项目,它应该是[E3,E5,E1,E2],始终是唯一的名称,并且介于 1 和 5 之间
这些都是我失败的尝试,
StartNode node = new StartNode();
node.setName("E1");
for (int i = 0; i < circuit.getNbStartNodes(); i++) {
for (int j = 1; j <= circuit.getNbStartNodes(); j++) {
String test = ((StartNode) circuit.getStartNode(j)).getName();
if (("E"+j).equalsIgnoreCase(test) && ("E"+j).equalsIgnoreCase(node.getName()) ) {
break;
}
else
node.setName("E" + j);
}
}
/*while (t <= circuit.getNbStartNodes()) {
for (int j = 0; j < circuit.getNbStartNodes(); j++) {
String test = ((StartNode) circuit.getStartNode(j)).getName();
if (("E" + t).equalsIgnoreCase(test) || ("E" + t).equalsIgnoreCase(node.getName()))
break;
else {
node.setName("E" + t);
}
}
t++;
}
*/
/* for (int i = 1; i <= circuit.getNbStartNodes(); i++) {
for (int j = 0; j < circuit.getNbStartNodes(); j++) {
String test = ((StartNode) circuit.getStartNode(j)).getName();
if (!("E" + i).equalsIgnoreCase(test)) {
node.setName("E" + i);
t=0;
break;
}
}
if (t==0)
break;
else
continue;
*/
//String test = ((StartNode) circuit.getStartNode(i)).getName();
//for (int j = 1; j <= circuit.getNbStartNodes(); j++) {
// if (!("E" + j).equalsIgnoreCase(test))
// node.setName("E" + j);
//}
我的代码做错了什么?
【问题讨论】:
-
我想知道,如果您的初始列表包含
E3和E5,那么添加哪个 元素是否重要?它必须是E1,还是E1、E2或E4中的任何一个都可以?