我有一个包括交通堵塞的通用列表。交通堵塞类有以下属性 String start, string end, int length.
public class jam {
String start;
String end;
int length;
public jam (int pLength, String Start, String pEnd) {
start = pStart;
...
在一个管理类中,所有的堵塞都被添加到一个列表中(alljam)。
public class Verwaltung {
List<jam> alljam = new List<jam>();
public Verwaltung () {
}
public void addtoList(List<jam>) {...
现在,我想用一个方法(也许是迭代?)将一个结束于另一个干扰的干扰组合成一个单一的干扰。这个方法应该在管理类中。这个方法应该是什么样子的?
非常感谢
你是不是在找像下面这样的东西。
class Jam {
String start;
public Jam(String start) {
this.start = start;
}
@Override
public String toString()
{
return this.start;
}
}
class Administration {
List<Jam> allJam = new ArrayList<>();
public void addToList(List<Jam> jams) {
allJam.addAll(jams);
}
@Override
public String toString()
{
return allJam.toString();
}
}
public class Demo
{
public static void main(String[] args)
{
List<Jam> list1 = Arrays.asList(new Jam("a"), new Jam("b"));
List<Jam> list2 = Arrays.asList(new Jam("c"), new Jam("d"));
Administration admin = new Administration();
// Prints: []
System.out.println(admin);
admin.addToList(list1);
// Prints: [a, b]
System.out.println(admin);
admin.addToList(list2);
// Prints: [a, b, c, d]
System.out.println(admin);
}
}
你可以做这样的事情。
List<jam> newJam = new ArrayList<>();
for (int i = 0; i < allJam.size(); i++) {
jam current = allJam.get(i);
if (current != null) {
for (int j = 0; j < allJam.size(); j++) {
if (i != j && allJam.get(j) != null && current.end.equals(allJam.get(j).start)) {
newJam.add(new jam([some_length?], current.start, allJam(j).end));
allJam.set(i, null);
allJam.set(j, null);
break;
}
}
}
if (allJam.get(i) != null)
newJam.add(current);
}
allJam = newJam;