Wednesday 15 May 2013

android - Using Comparable to sort twice -


मेरे पास एक ऐसी गतिविधि है जिसमें ArrayList & lt; KNDrawingTOOL & gt; नामक allTools

KndrawingTool नीचे है .. यह तुलनात्मक तुलना करता है और तुलना विधि ह्यू द्वारा मूल रूप से क्रमबद्ध रंग है। यह बहुत अच्छा काम करता है .. लेकिन मैं उस सॉर्टेड सरणी को लेना चाहूंगा और फिर उसे मूल्य से फिर से सॉर्ट करना चाहूंगा, हू ऑर्डरिंग को बनाए रखना है। क्या ऐसा करने का एक तरीका है?

कंड्राइंगटॉल <पूर्व> सार्वजनिक वर्ग केंड्रिंगिंग टूल का उपयोग करने योग्य & lt; KNDrawingTool & gt; {सार्वजनिक इंक आईडी; सार्वजनिक स्ट्रिंग का नाम; सार्वजनिक पूर्ण आकार; सार्वजनिक इंट रंग; जन इंट लागत; सार्वजनिक पूर्णता क्षमता; सार्वजनिक एंट राशि; सार्वजनिक स्ट्रिंग प्रकार; सार्वजनिक पेंट mPaint; सार्वजनिक कंड्राइंगटूल (स्ट्रिंग टूलटाइप, बूलियन फ्लैटटिप, इंट पेंटआईडी, स्ट्रिंग पेंटएनाम, इंट पेंट साइज़, इंट पेंट कॉॉलर, इंट पेंट कॉस्ट, इंट कैनकैपेसिटी, इंट बचे अमर)) {type = toolType; आईडी = पेंटआईडी; नाम = पेंटनाम; आकार = पेंट साइज़; रंग = रंगरंग; लागत = पेंट कॉस्ट; क्षमता = क्षमता राशिफल = शेष राशि; MPaint = नया पेंट (); यदि (प्रकार == "पेंट") {mPaint.setMaskFilter (नया ब्लरमास्कफ़िल्टर (15, ब्लरमास्कफ़िल्टर.ब्लूर। नॉर्मल)); } MPaint.setAntiAlias ​​(सच); mPaint.setDither (सही); mPaint.setStrokeCap ​​(Paint.Cap.ROUND); mPaint.setColor (रंग); mPaint.setStyle (Paint.Style.STROKE); mPaint.setStrokeWidth (आकार); } / * (गैर-जवाडोक) * @see java.lang.Comparable # compareTo (java.lang.Object) * / @ ओवरराइड पब्लिक इंट की तुलना करें (KNDrawingTool अन्य) {लॉग। V ("टूल", "सॉर्टिंग ह्यू" ); // वापसी (रंग- अन्य। रंग); फ्लोट [] एचएसवी 1 = नया फ्लोट [3]; फ्लोट [] एचएसवी 2 = नया फ्लोट [3]; Color.colorToHSV (रंग, एचएसवी -1); Color.colorToHSV (other.color, HSV2); वापसी ((इंट) एचएसवी 1 [0] - (इंट) एचएसवी 2 [0]); }}

मेरे मुख्य वर्ग को बस कॉल संग्रह। स्रोत (सभी उपकरण);

जैसे मैंने कहा कि ये सभी प्रकार की ह्यू द्वारा ... मैं एक दूसरा पास बनाना चाहता हूं, फिर उन्हें रंग के आकार को बनाए रखने के द्वारा मूल्यों को बदल दिया जाता है ..

आप अपना सॉर्टिंग 1 पास में कर सकते हैं

  float [] hsv1 = new float [3]; फ्लोट [] एचएसवी 2 = नया फ्लोट [3]; Color.colorToHSV (रंग, एचएसवी 1); Color.colorToHSV (अन्य। कोलोर, एचएसवी 2); यदि ((इंट) एचएसवी 1 [0] == (इंट) एचएसवी 2 [0]) {रिटर्न (इंट) एचएसवी 1 [2] - (इंट) एचएसवी 2 [2]; } वापसी (इंट) एचएसवी 1 [0] - (इंट) एचएसवी 2 [0];    

No comments:

Post a Comment