多維度條件情況處理

2021-07-30 16:33:54 字數 3214 閱讀 4552

設計程式的時候,多維度條件情況處理

對於多維條件的限制時,可以先只考慮乙個主要的條件,然後看怎麼在這這條件中植入其他維度的條件

比如下面的**是以根為乙個重複單元(根及其緊下一層)(迭代維度)

1,以最大根(100000)為開始迭代,每迭代一次處理乙個根,進入下乙個根(動態變化的根)

2,處理每個根的時候,先處理直接在這個根下的頁面(不可再作為根的),然後處理這個根下的資料夾(可再作為根的),此資料夾又當作根即開始迭代,乙個根迭代一次

3,有1,2就迭代可以,至於裡面if else條件的完備可以處理所有級別的根,只要把所有級別的根遍歷是的情況用 if else 全部羅列即可

但是,比以前做的多了乙個比對,所以多了最外面的if else,以前是結合sql有層級的遞迴下去,這個是把無序的 用乙個有序標準組織起來,在遍歷標準的時候和需要排序的比對,排序,

標準遍歷完,無序的就排完序)(排序維度)

比如樹狀選單:

每層級有直接掛頁面,有掛資料夾兩種大情況,在資料夾又是這兩種。

private tree gettree(menufolder parammenufolder, set paramset, int level)(

tree localtree1 = null;

if (paramset.contains(parammenufolder))即頁面直接掛的是最外層資料夾(根)的情況

localtree1 = new tree(parammenufolder.getid(), 0, new menufolderdto(parammenufolder), parammenufolder.getdisplayorder());//本節點成一樹(根資料夾建樹)

object localobject1 = paramset.iterator();

while (((iterator)localobject1).hasnext())//遍歷已經和頁面有關聯的資料夾

object localobject2 = (menufolder)((iterator)localobject1).next();

if (((menufolder)localobject2).equals(parammenufolder))//當是那個直接掛頁面的一級資料夾

object localobject3 = ((menufolder)localobject2).getmenuitems();//獲取這根個資料夾下所有頁面

object localobject4 = ((set)localobject3).iterator();

while (((iterator)localobject4).hasnext())

object localobject5 = (menuitem)((iterator)localobject4).next();

menuitemdto localmenuitemdto = new menuitemdto((menuitem)localobject5);//遍歷並組裝頁面

if (localmenuitemdto.getlevel1() >= level)

tree localtree2 = new tree(localmenuitemdto.getid(), 1, localmenuitemdto, localmenuitemdto.getdisplayorder());//頁面建樹

localtree1.getsonlist().add(localtree2);//這個頁面放在本樹的子節點

}//處理直接關在根資料夾的所有頁面,建立頁面樹

localobject1 = parammenufolder.getchildfolders();//獲取此根級檔案的一級資料夾,處理該一級資料夾下的所有二級資料夾

if ((localobject1 != null) && (((set)localobject1).size() > 0))

object localobject2 = ((set)localobject1).iterator();

while (((iterator)localobject2).hasnext())

object localobject3 = (menufolder)((iterator)localobject2).next();//

tree tree = gettree((menufolder)localobject3, paramset, level);//遍歷子一級資料夾建樹///開始迭代,到了資料夾才迭代

if (tree != null) {

localtree1.getsonlist().add(tree);

else//頁面不直接掛在根資料夾上,隔了一層資料夾

object localobject1 = new arraylist();

object localobject2 = parammenufolder.getchildfolders();//獲取該根資料夾的所有一級資料夾

if ((localobject2 != null) && (((set)localobject2).size() > 0))

object localobject3 = ((set)localobject2).iterator();

while (((iterator)localobject3).hasnext())

object localobject4 = (menufolder)((iterator)localobject3).next();//迭代這些一級資料夾

object localobject5 = gettree((menufolder)localobject4, paramset, level);此時一級資料夾作為「根」,迭代()

if (localobject5 != null) {

((list)localobject1).add(localobject5);

if (((list)localobject1).size() > 0)//有

localtree1 = new tree(parammenufolder.getid(), 0, new menufolderdto(parammenufolder), parammenufolder.getdisplayorder());

localtree1.setsonlist((list)localobject1);屬於不同的迭代次,和getsonlist效果一致

if (localtree1 != null) {

collections.sort(localtree1.getsonlist());

return localtree1;

4 多維度條件引數化

4 多維度條件引數化 支援通過商品型別或總價來過濾商品 version 3.0.0 支援通過商品型別或總價來過濾商品 true 根據商品型別 false 根據商品總價 public static listfilterskus listcartskulist,skucategoryenum skuca...

多維度競爭

教育讓我們學會用成績去衡量乙個人的水平,但是成績一樣的兩個人,他們綜合素質能一樣麼?雖然我們都知道不一樣,但是我們已經形成了這樣的思維,和別人競爭的時候總是會想著和別人去比較單方面的能力,乙個層面的競爭上,總有比我們厲害的人,我們心理壓力自然而然就無比巨大,特別是在這個緊急下行的年代。那我們應該培養...

多維度參與決策

任何事件都是有無數的決定組成,可能有好的決定,也可能有壞的決定 有些決定可能有好的影響,有些決定可能有壞的影響 有些則是一時的,有些就可能是長遠的。如何測能做出乙個比較好的決定?任何決定,都肯定是為某一目標服務的,也就是肯定有動力在敦促你 為什麼 做決定。所以,一切決定都應該把持乙個不能突破的原則,...