Этот объект является то, что это все о:Наиболее эффективный способ объединения двух массивов объектов
public class Unit {
private String label;
NumberRow numberRow;
Unit(String label){
this.label=label;
numberRow = new NumberRow();
}
....
}
Он содержит имя метки и массив удваивается (то будет NumberRow()) Другой класс с именем UnitRow является массив из этих единиц:
public class UnitRow {
Unit[] unitArray;
private int elementsInArray;
Scanner in;
UnitRow(){
unitArray = new Unit[Dataset.numberOfRecords];
elementsInArray = 0;
}
......
}
Однако я собираюсь ввести еще один класс: Лист. Он содержит блок и реализует интерфейс кластера:
public class Leaf implements Cluster {
private Unit unit;
Leaf(Unit unit){
this.unit = unit;
}
.......
public UnitRow getUnits() {
UnitRow unitRow = new UnitRow();
unitRow.addLabel(unit.getLabel());
for (int x = 0; x < Dataset.numberOfVariables; x++){
unitRow.addVar(unit.valueOnIndex(x));
}
return unitRow;
}
public boolean hasChildren() {
return false;
}
}
Он содержит блок и в функции UnitRow новый UnitRow создается только с одной единицы; а именно Unit, которая была предоставлена при создании, когда класс был создан. Другой класс (последний) называется Узел также реализует интерфейс кластера:
public class Node implements Cluster{
private Cluster leftChild;
private Cluster rightChild;
Node(Cluster leftChild, Cluster rightChild){
this.leftChild = leftChild;
this.rightChild = rightChild;
}
public UnitRow getUnits() {
return leftChild.getUnits() + rightChild.getUnits();
}
}
Узел имеет левый ребенка и правый ребенка. Такой ребенок может быть либо листом, либо другим узлом. Теперь у меня есть функция в узле, дающая мне массив единиц из всех листьев под собой. Я бы сказал, что java: return leftChild.getUnits() + rightChild.getUnits(); так, например, если leftChild и rightChild являются обоими листами, те массивы, которые они возвратят, добавляются вместе в этот оператор. Однако это неправильный путь. Каков наиболее эффективный способ позволить функции getUnits в Node возвращать один массив с единицами наиболее эффективным способом?
Рассмотрите возможность использования 'List's вместо (например,' ArrayList'). С помощью 'List' вы можете вызвать' addAll'. –
Я бы хотел, но университет не позволит мне это сделать ... – tortilla