設計程式的時候,多維度條件情況處理
對於多維條件的限制時,可以先只考慮乙個主要的條件,然後看怎麼在這這條件中植入其他維度的條件
比如下面的**是以根為乙個重複單元(根及其緊下一層)(迭代維度)
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...
多維度競爭
教育讓我們學會用成績去衡量乙個人的水平,但是成績一樣的兩個人,他們綜合素質能一樣麼?雖然我們都知道不一樣,但是我們已經形成了這樣的思維,和別人競爭的時候總是會想著和別人去比較單方面的能力,乙個層面的競爭上,總有比我們厲害的人,我們心理壓力自然而然就無比巨大,特別是在這個緊急下行的年代。那我們應該培養...
多維度參與決策
任何事件都是有無數的決定組成,可能有好的決定,也可能有壞的決定 有些決定可能有好的影響,有些決定可能有壞的影響 有些則是一時的,有些就可能是長遠的。如何測能做出乙個比較好的決定?任何決定,都肯定是為某一目標服務的,也就是肯定有動力在敦促你 為什麼 做決定。所以,一切決定都應該把持乙個不能突破的原則,...