الفرق بين المراجعتين ل"Kotlin/collections/sortWith"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>sortWith()‎</code> في لغة Kotlin}}</noinclude> تقوم الدالة<code>sortWith()‎</code> بترتيب Kotli...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>sortWith()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>sortWith()‎</code> في لغة Kotlin}}</noinclude>
تقوم الدالة<code>sortWith()‎</code> بترتيب  [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|اللائحة المتغيرة]] (<code>MutableList</code>) التي استُدعيت عبرها تنازليًا وفقًا للترتيب الطبيعي للقيم التي تعيدها الدالة المُمرّرة <code>selector</code>.  
+
تقوم الدالة<code>sortWith()‎</code> بترتيب  [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|اللائحة المتغيرة]] (<code>MutableList</code>) التي استُدعيت عبرها تنازليًا وفقًا للمُقارن المُمرّر <code>comparator</code>. 
 +
 
 +
في حال تمرير عددين <code>fromIndex</code> و <code>toIndex</code>  فستقوم بترتيب مجال من  [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها والمحدد بواسطة الفهرسين <code>fromIndex</code> و <code>toIndex</code> وفقًا للترتيب المحدد من قبل المقارِن المُمرّر <code>comparator</code>.  
  
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة  <code>sortWith()‎</code> عبر  [[Kotlin/Array|المصفوفات]]: <nowiki/><nowiki/><syntaxhighlight lang="kotlin">
+
في حال استدعاء الدالة  <code>sortWith()‎</code> عبر  [[Kotlin/Array|المصفوفات]] مع تمرير مقارِن <code>comparator</code> فستقوم بترتيب  [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها وفقًا للترتيب المحدد من قبل المقارِن المُمرّر <code>comparator</code>:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
inline fun <T, R : Comparable<R>> Array<out T>.sortBy(
+
fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)  
    crossinline selector: (T) -> R?)
+
 
</syntaxhighlight><nowiki/><nowiki/>يمكن استدعاء الدالة  <code>sortWith()‎</code> عبر  كائن من النوع <code>[[kotlin/MutableList|MutableList]]</code>:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
+
</syntaxhighlight>في حال استدعاء الدالة  <code>sortWith()‎</code> عبر  [[Kotlin/Array|المصفوفات]] مع تمرير مقارِن <code>comparator</code> وعددين <code>fromIndex</code> و <code>toIndex</code> فستقوم بترتيب مجال من  [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها والمحدد بواسطة الفهرسين <code>fromIndex</code> و <code>toIndex</code> وفقًا للترتيب المحدد من قبل المقارِن المُمرّر <code>comparator</code>.<syntaxhighlight lang="kotlin">
inline fun <T, R : Comparable<R>> MutableList<T>.sortBy(
+
fun <T> Array<out T>.sortWith(
     crossinline selector: (T) -> R?)
+
     comparator: Comparator<in T>,
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].  
+
    fromIndex: Int = 0,
 +
    toIndex: Int = size)
 +
</syntaxhighlight>في حال استدعاء الدالة  <code>sortWith()‎</code> عبر  كائن من النوع <code>[[kotlin/MutableList|MutableList]]</code> مع تمرير مقارِن <code>comparator</code> فستقوم بترتيب  ذلك الكائن الذي استُدعيت عبره وفقًا للترتيب المحدد من قبل المقارِن المُمرّر <code>comparator</code>.<syntaxhighlight lang="kotlin">
 +
fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)
 +
 
 +
</syntaxhighlight>
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()sortWith</code> مع المصفوفات===
 
===استخدام الدالة <code>()sortWith</code> مع المصفوفات===
تعرف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] <nowiki/>باسم <code>array</code> مكونة من ستة عناصر باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة<code>()sortWith</code>  على <code>array</code> لترتيبه تنازليًا مع تمرير دالة كوسيط، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] <nowiki/>باسم <code>array</code> مكونة من ستة عناصر باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة<code>()sortWith</code>  على <code>array</code> لترتيبه وفقًا للمقارِن المُمرّر، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
import java.util.Arrays
 
import java.util.Arrays
  
سطر 18: سطر 25:
 
val array = arrayOf(1, -9, -3, 7, 5, 6)
 
val array = arrayOf(1, -9, -3, 7, 5, 6)
 
      
 
      
array.sortByDescending {it*it}
+
array.sortWith (Comparator { a, b -> b - a })
 
      
 
      
print (Arrays.toString(array)) // [-9, 7, 6, 5, -3, 1]
+
print (Arrays.toString(array)) // [7, 6, 5, 1, -3, -9]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===أنظر أيضًا===
+
==أنظر أيضًا==
 
*<code>[[Kotlin/collections/sort|sort()]]</code>‎ : تقوم بترتيب  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/MutableList|اللائحة المتغيرة]] (<code>MutableList</code>) التي استُدعيت عبرها. 
 
*<code>[[Kotlin/collections/sort|sort()]]</code>‎ : تقوم بترتيب  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/MutableList|اللائحة المتغيرة]] (<code>MutableList</code>) التي استُدعيت عبرها. 
  
سطر 29: سطر 36:
  
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sort-by-descending.html الدالة  sortWith()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sort-with.html الدالة  sortWith()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 18:08، 6 يونيو 2018

تقوم الدالةsortWith()‎ بترتيب المصفوفة أو اللائحة المتغيرة (MutableList) التي استُدعيت عبرها تنازليًا وفقًا للمُقارن المُمرّر comparator.

في حال تمرير عددين fromIndex و toIndex فستقوم بترتيب مجال من المصفوفة التي استُدعيت عبرها والمحدد بواسطة الفهرسين fromIndex و toIndex وفقًا للترتيب المحدد من قبل المقارِن المُمرّر comparator.

البنية العامة

في حال استدعاء الدالة  sortWith()‎ عبر المصفوفات مع تمرير مقارِن comparator فستقوم بترتيب المصفوفة التي استُدعيت عبرها وفقًا للترتيب المحدد من قبل المقارِن المُمرّر comparator:

fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)

في حال استدعاء الدالة  sortWith()‎ عبر المصفوفات مع تمرير مقارِن comparator وعددين fromIndex و toIndex فستقوم بترتيب مجال من المصفوفة التي استُدعيت عبرها والمحدد بواسطة الفهرسين fromIndex و toIndex وفقًا للترتيب المحدد من قبل المقارِن المُمرّر comparator.

fun <T> Array<out T>.sortWith(
    comparator: Comparator<in T>, 
    fromIndex: Int = 0, 
    toIndex: Int = size)

في حال استدعاء الدالة  sortWith()‎ عبر كائن من النوع MutableList مع تمرير مقارِن comparator فستقوم بترتيب ذلك الكائن الذي استُدعيت عبره وفقًا للترتيب المحدد من قبل المقارِن المُمرّر comparator.

fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)

أمثلة

استخدام الدالة ()sortWith مع المصفوفات

تعرف الشيفرة الآتية  مصفوفة باسم array مكونة من ستة عناصر باستخدام الدالة ()arrayOf‎، ثم تستخدم الدالة()sortWith  على array لترتيبه وفقًا للمقارِن المُمرّر، ثم تطبع الناتج:

import java.util.Arrays

fun main(args: Array<String>) {
val array = arrayOf(1, -9, -3, 7, 5, 6)
    
array.sortWith (Comparator { a, b -> b - a })
    
print (Arrays.toString(array)) // [7, 6, 5, 1, -3, -9]
}

أنظر أيضًا

  • sortBy()‎ : تقوم بترتيب المصفوفة أو اللائحة المتغيرة (MutableList) التي استُدعيت عبرها وفقًا للقيم التي تعيدها الدالة المُمرّرة . 

مصادر