تصف هذه المقالة عمليات التصنيف والفرز التي تنفذها Java. شاركه للرجوع إليه ، على النحو التالي:
فيما يلي عرض توضيحي لعمليات تنفيذ Array Array Array.
يعتمد رمز المصدر على سبيل المثال المكتوب في المقالة على JDK1.6+، Junit4.8.2
java.util.Arrays.sort()
دعم الفرز int[] ، long[] ، short[] ، char[] ، byte[] ، float[] ، double[] ، Object[]
مقتطف رمز العينة المرجعي كما يلي
// إعلان صفيف int وتهيئة int [] intarry = {5،4،7،8،2،0،9،3،6،10} ؛رمز مصدر فئة اختبار JUNIT:
package com.gjnote.test.array ؛ استيراد java.util.arrays ؛ استيراد org.junit.test ؛ اختبار الطبقة العامة {// إعلان صفيف int وتهيئة int [] Arrays.sort (intarry) ؛ for (int i = 0 ؛ i <intarry.length ؛ i ++) {system.out.println (intarry [i]) ؛} system.out.println (arrays.toString (intarry)) ؛}}إخراج وحدة التحكم
0
1
2
3
4
5
6
7
8
9
10
[0 ، 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10]
java.util.Collections.sort()
يتم تحقيق مقارنة الكائنات من خلال تنفيذ طريقة compare الداخلية
مقتطف رمز العينة كما يلي
/*** استخدم collections.sort (قائمة ، مقارن () {}) ؛*طريقة الموصى بها لفرز صفائف قائمة*/public void collectionsSortElement1 (قائمة قائمة) {collections.sort (قائمة ، مقارن جديد () (O2) .Compareto (O1) ؛}}) ؛}Java تنفذ قائمة البيانات المكررة
الطريقة 1: استخدم لتوقيت الحلقة لإزالة العناصر المكررة في القائمة
مقتطف الكود كما يلي
قائمة templist = new ArrayList () ؛ // إزالة العناصر المكررة من القائمة الأصلية لـ (سلسلة السلسلة: OriginAllist) {if (! templist.contains (string)) {templist.add (string) ؛}}الطريقة 2: استخدم SET to Deciduplicate
مقتطف الكود كما يلي
// set يستخدم تفرد العنصر المحدد ومجموعة set set = new hashset (OriginAllist) ؛ قائمة templist = new ArrayList (set) ؛
الطريقة 3: استخدم Treeset لإزالة العناصر المكررة
Treeset Treeset = New Treeset (OriginAllist) ؛ ListTemplist = new ArrayList () ؛ Templist.addall (Treeset) ؛ // Treeset يكون الفرز الافتراضي هو ترتيب تصاعدي ، أضف ما إذا كان الترتيب العكسي مطلوبًا وفقًا للوضع الفعلي. collections.reverse (templist) ؛
Java تنفذ derepeatment من القائمة بعد الفرز
قائمة اختبار JUNIT DECIDUPLICATION وفرزات المصدر الفرز
package com.gjnote.test.array ؛ استيراد java.util.arraylist ؛ استيراد java.util.collections ؛ استيراد java.Util.comparator ؛ استيراد java.util.hashset ؛ استيراد java.util.tilet ؛ اختبار فئة*قائمة Array Array De-Heavy Element Sort ** version 1.0*author www.gjnote.com **/class public class testlistarraysort {private listoriginallist = null ؛ @forepublic void setup () rems {orminalist = new arraylist () ؛ for (int i = 10000 ؛ elementif (i ٪ 2 == 0) {OriginAllist.add ("element"+i) ؛}}}/*** عنصر قائمة الإخراج* @param list*/private void outputlist (list) {for (int i = 0 ؛ i <list.size () ؛ i ++) المقارنة () {}) ؛* طريقة الفرز الموصى بها*/private void collectionsSortElement (قائمة) {long start = system.currentTimeMillis () ؛ collections.sort (قائمة ، مقارن جديد () o2.compareto (O1) ؛}}) ؛ // outputlist (templist) ؛ system.out.println ("collections.sort:" + (System.CurrentTimeMillis () - start) + "ms") ؛ {system.out.println ("testForLoopRemoverePeatElement") ؛ start long = system.currentTimEmillis () ؛ ers applist = new ArrayList () ؛ // قم بإزالة العناصر المكررة لـ (سلسلة السلسلة: OriginAllist) {if (! templist.contains (string)) {templist.add (string) ؛ Traverse List وإزالة العناصر المكررة: " + (System.CurrentTimeMillis () - START) +" MS ") ؛}/*** اختبار لاستخدام تعيين إلى deciplecate ؛ * استخدم collections.sort (list ، comparator () {}) ؛ SITE **/@testpublic void testSetSetRemoverePeatelement () {system.out.println ("TestSetSetRemoverePeatelement") ؛ بدءًا طويلًا = System.CurrentTimeMillis () ؛ // الفرز الأول (القيمة النظرية: الفرز أولاً ثم التفريخ سيكون أكثر كفاءة من الفرز لاحقًا) CollectionSortelement (OriginAllist) ؛ // تستخدم مجموعة من التفرد من العناصر المحددة ، وبعد أن تتسنى لتصنيف التعليقات ، وبعد ذلك ، قم بتقنين ". جرب وقت التشغيل //collectionssortelement(templist) ؛//outputlist(templist)؛system.out.println("collections.sort sort ، استخدم التعيين إلى demblicate: TestTreeSetRemoverePeatElement () {system.out.println ("TestTreeSetRemoverePeatElement") ؛ start long = system.currentTimeMillis () ؛ TreesetTreSet = New Treeset (OriginAllist) ؛ listtemplist = new ArrayList () ؛ templist.addall (Treeset) ؛ // Treeset ، فإن النوع الافتراضي هو ترتيب تصاعدي ، أضف ما إذا كنت بحاجة إلى عكس النوع وفقًا للوضع الفعلي. collections.reverse (templist) ؛ // outputlist (templist) ؛ system.out.println ("الفرز مع Treeset ، قم بإزالة العناصر المكررة:" + (System.CurrentTimEmillis () - start) + "MS") 14MSTESTERESETREMOVEREPEATELEMENT () ؛ // 20ms // testforloopromoverepeatelement () ؛ // 2525ms}}Run TestSetSetRemoverePeatelement () وحدة التحكم لإخراج النتيجة
testSetSteRemoverePeatelement
Collections.sort: 8ms
collections.sort sort ، استخدم مجموعة إلى deciplicate: 14ms
قم بتشغيل وحدة التحكم في TestTrereMoverePeatelement () لإخراج النتيجة
TestTreeSetRemoverePeatelement
فرز مع Treeset ، قم بإزالة العناصر المكررة: 20ms
قم بتشغيل وحدة تحكم TestForLoopropEpeAtelement () لإخراج النتيجة
TestForLoopromoverePeatelement
Collections.sort: 7ms
استخدم A for Loop to Traverse ، قم بإزالة العناصر المكررة: 2525 مللي ثانية
ملاحظة: فيما يلي بعض الأدوات ذات الصلة للرجوع إليها:
أداة الإزالة عبر الإنترنت:
http://tools.vevb.com/code/quchong
أداة تكرار النص عبر الإنترنت:
http://tools.vevb.com/aideddesign/txt_quchong
عرض توضيحي للرسوم المتحركة عبر الإنترنت أدخل/حدد/فقاعة/دمج/هيل/أداة عملية خوارزمية الفرز السريع:
http://tools.vevb.com/aideddesign/paixu_ys
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.