オブジェクトempがtlに追加され、tlがpmに追加されるコンポジットパターンを実装します。私のリストにはpmオブジェクトだけが含まれていて、残りのオブジェクトは順番に格納されています。Javaのリストを使用して合成パターンを実装できますか?
しかし、これを繰り返して印刷しようとすると、pmの値だけが表示され、他の2つのオブジェクト値は表示されません。
これは1 pmオブジェクトの下に2つのtlオブジェクトが必要で、1つのtlの下に3つのempオブジェクトが必要です。
List<Entity> ls = new ArrayList<Entity>();
Entity pm = new Entity();
Entity tl = new Entity();
Entity emp = new Entity();
int i = 0, j = 0, k = 0;
for (i = 1; i <= 3; i++) {
emp = new Entity("Associate" + i, "Salem", 7563214, 3);
// ls.add(obj);
for (j = 1; j <= 2; j++) {
tl = new Entity("TL" + j, "Chennai", 4756921, 2);
tl.adds(emp);
// ls.add(obj);
for (k = 1; k <= 3; k++) {
pm = new Entity("PM"+ k, "Erode", 5693214, 1);
pm.adds(tl);
ls.add(pm);
}
}
}
ここで、各コンストラクタの最後の値がレベルを定義します。レベルがクリックされたJSP内にボタンがあります。
<div id="company" style="display:none">
PM
TL
のEmp
このリストLSを別のリストは、に基づいてリストから値を取得するために使用された同じクラスの別のメソッドに渡されますレベル。
List<Entity> subset = new ArrayList<Entity>();
for (Entity val : a) {
if (val.getLevel()>=level) {
subset.add(val);
}
マイBeanクラスは、あなたが望むものを実装するためのエレガントな方法は、以下のように、toString()メソッドを実装することになります
パブリッククラスエンティティ{
private String name;
private String dept;
private int phNum;
private int level;
private List<Entity> entityList;
public Entity(){}
public Entity(String name,String dept, int phNum,int level) {
this.name = name;
this.dept = dept;
this.phNum = phNum;
this.level = level;
entityList = new ArrayList<Entity>();
}
public void adds(Entity e) {
entityList.add(e);
}
public List<Entity> getEntityList(){
return entityList;
}
コードに問題はありますか? 3つのネストされたループを使用してデータ構造を作成しましたが、3つのネストされたループを使用してそれを印刷しますか? –
いいえforeachループを使用しました。 for(エンティティval:a)ここで、エンティティは私のbeanクラスです。 – VijiBalaji
for-eachを1つ使用する場合は、1つのレベル、つまり私が推測するトップレベルを反復処理します。 2つ以上のレベルを繰り返したい場合は、複数のループが必要です。または、より良い解決策である可能性が高い再帰を使用する必要があります。 –