자바-재 귀 실현 조합
3321 단어 Java
1.State 클래스
public class State {
/** */
private List selections = new ArrayList();
/** */
private String mName;
public State(String name) {
this.mName = name;
}
public State() {
}
public String getName() {
return mName;
}
public void setName(String mName) {
this.mName = mName;
}
public void addSelection(String selection) {
selections.add(selection);
}
public String getSelection(int index) {
return this.selections.get(index);
}
public int selectionNum() {
return this.selections.size();
}
public List getSelections() {
return selections;
}
}
2 조합 류,Cmn
public class Cmn {
private List states = new ArrayList();
/**
*
*/
public Cmn(){
State state1 = new State("State1");
state1.addSelection("State1_Selection1");
state1.addSelection("State1_Selection2");
State state2 = new State("State2");
state2.addSelection("State2_Selection1");
State state3 = new State("State3");
state3.addSelection("State3_Selection1");
State state4 = new State("State4");
state4.addSelection("State4_Selection1");
state4.addSelection("State4_Selection2");
state4.addSelection("State4_Selection3");
addState(state1);
addState(state2);
addState(state3);
addState(state4);
}
private void addState(State state){
this.states.add(state);
}
/**
*
*/
public void cmn(){
System.out.println(" ");
printState(this.states);
System.out.println(" ");
State state = new State("CMN");
int index = 0;
cmn(state,index);
printState(this.mPxStates);
}
/** */
List mPxStates = new ArrayList();
/**
*
* @param state
* @param index
*/
public void cmn(State state,int index){
State stateT = this.states.get(index);
List selections = stateT.getSelections();
int sNum = selections.size();
for (int i = 0; i < sNum; i++) {
String selection = selections.get(i);
State state2 = new State(); // state selection
state2.getSelections().addAll(state.getSelections());
state2.addSelection(selection);
if(index+1 == this.states.size()){//
state2.setName("CMN "+(mPxStates.size()+1));
mPxStates.add(state2);
}else{//
int index2 = index+1;
cmn(state2,index2);
}
}
}
public void printState(List states){
int num = states.size();
for (int i = 0; i < num; i++) {
State state = states.get(i);
List selections = state.getSelections();
System.out.println("----------"+state.getName()+"-----------");
int num2= selections.size();
for (int j = 0; j < num2; j++) {
String selection = state.getSelection(j);
System.out.println(j+"----->"+selection);
}
System.out.println();
}
}
}
3 Main public class Main {
public static void main(String[] args){
new Cmn().cmn();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.