مقارنة جدولين في Java
في Java ، يمكنك مقارنة صفيفين من خلال مقارنة كل عنصر من عناصر المصفوفة. فئة Arrays طرقا يمكن أن تكون مفيدة لإجراء مقارنة بين الصفيفين في Java.
سنتعلم كيفية مقارنة صفيفين في Java باستخدام طريقة Arrays.equals() و Arrays.deepEquals()مع أمثلة.
صفيفان متساويان إذا كان لديهما:
- نفس النوع.
- نفس عدد العناصر.
- كل زوج من العناصر في كلا الصفيفين متساويان.
- يجب أن يكون ترتيب العناصر هو نفسه.
طريقة Arrays.equals() < / h2 >< p > فئة Java المصفوفات < / span> الطريقة يساوي () < / الامتداد> لمقارنة جدولين. مبدأها هو مقارنة عناصر الصفيفين عن طريق القيام ب traverse. public static boolean equals(int[] a1, int[] a2)
الطريقة يساوي< / سبان> إرجاع true إذا كانت عناصر المصفوفة متساوية وإلا false.
example:
import java.util.Arrays;
الفئة العامة تساوي
{
الفراغ العام الثابت الرئيسي (سلسلة [] args)
{
// جداول للمقارنة
int[] array1 = int[] جديد [] {1 ، 2 ، 3 ، 4 ، 5} ؛
int[] array2 = int[] جديد [] {1 ، 2 ، 3 ، 4 ، 5} ؛
int[] array3 = int[] جديد [] {1 ، 2 ، 2 ، 4 ، 5} ؛
//قارن صفيف 1 و array2 مع يساوي < br / > if طريقة (Arrays.equals (array1 ، array2))
System.out.println ("المصفوفات متساوية") ؛
else
System.out.println ("المصفوفات ليست متساوية");
// قارن الصفيف 1 مع array3
إذا كان (Arrays.equals (array1 ، array3))
System.out.println ("المصفوفات متساوية") ؛
آخر
System.out.println ("المصفوفات ليست متساوية.") ؛
}
}
< / pre> وقت التشغيل:
المصفوفات تساوي < br / > المصفوفات ليست متساوية.
< / pre> طريقة نمط Arrays.equals() يقارن عناصر الصفيفين.
ملاحظة: إذا كان الصفيفان موجودين في كائنات مختلفة ولكن لهما نفس القيم ، فإنهما غير متساويين كما هو موضح في المثال أدناه.
public class comparisonArrays2
{
الفراغ الثابت العام الرئيسي (String[] args)
{
// جداول للمقارنة
String[] array1 = سلسلة جديدة[] {"a"، "b"، "c"، "d"}؛
String[] array2 = سلسلة جديدة [] {"a" ، "b" ، "c" ، "d"} ؛
كائن [] arrayObj1 = {array1} ؛
كائن [] arrayObj2 = {array2} ؛
// قارن arrayObj1 و arrayObj2
إذا كان (Arrays.equals (arrayObj1 ، arrayObj2))
System.out.println ("المصفوفات متساوية") ؛
آخر
System.out.println ("المصفوفات ليست متساوية.") ؛
}
}
< / pre> Execution: < / p > < pre class = "prettyprint lang-java" > المصفوفات ليست متساوية.
< / pre>
يمكننا أن نرى أن Arrays.equals() لا يمكنه إجراء مقارنة أعمق ولحل هذه المشكلة ، تحتاج إلى استخدام طريقة deepEquals () < / span>.
< / p >The Arrays.deepEquals()
The Arrays طريقة أخرى أكثر فاعلية لمقارنة محتويات المصفوفات بطريقة أكثر تعمقا كما يوحي الاسم.
public static boolean deepEquals(Object[] t1, Object[] t2)
طريقة نمط deepEquals تحليل كلا الصفيفين t1 و T2< / SPAN> ويقارنها. بعد التحليل العميق ، يتم إرجاع ture إذا كان الاثنان متساويين بخلاف ذلك false.
صفيفان t1 et t2 < / span > من النوع الكائن متساو إذا كان لديهم واحدة على الأقل من الخصائص التالية: < / p >< p >< / p >- t1 = t2
- يساوي (t2) إرجاع true.
- إذا كان t1 و t2 لهما نفس نوع مرجع الكائن ، فإن الطريقة deepEquals(t1,t2) إرجاع true.
- إذا كان t1 و t2 لهما نفس النوع البدائي ، فإن الطريقة يساوي (t1، t2) < / سبان> العوائد true.
مثال:
public class comparisonArrays3
{
الفراغ العام الثابت الرئيسي (String[] args)
{
// جداول للمقارنة
سلسلة[] array1 = سلسلة جديدة[] {"جافا"، "php" ، "جافا سكريبت" ، "C ++"} ؛
String [] array2 = سلسلة جديدة [] {"جافا" ، "php" ، "جافا سكريبت" ، "c ++"} ؛
الكائن [] t1 = {array1} ؛
الكائن [] t2 = {array2} ؛
// قارن arrayObj1 و arrayObj2
إذا كان (Arrays.deepEquals(t1, t2))
System.out.println ("المصفوفات متساوية");
آخر
System.out.println ("المصفوفات ليست متساوية.") ؛
}
}
< / pre>< / p>
وقت التشغيل: < / p >< p >< / p >< pre class = "prettyprint lang-java" > المصفوفات متساوية
< / pre>
< / p>
المراجع:
الفئة العامة تساوي
{
الفراغ العام الثابت الرئيسي (سلسلة [] args)
{
// جداول للمقارنة
int[] array1 = int[] جديد [] {1 ، 2 ، 3 ، 4 ، 5} ؛
int[] array2 = int[] جديد [] {1 ، 2 ، 3 ، 4 ، 5} ؛
int[] array3 = int[] جديد [] {1 ، 2 ، 2 ، 4 ، 5} ؛
//قارن صفيف 1 و array2 مع يساوي < br / > if طريقة (Arrays.equals (array1 ، array2))
System.out.println ("المصفوفات متساوية") ؛
else
System.out.println ("المصفوفات ليست متساوية");
// قارن الصفيف 1 مع array3
إذا كان (Arrays.equals (array1 ، array3))
System.out.println ("المصفوفات متساوية") ؛
آخر
System.out.println ("المصفوفات ليست متساوية.") ؛
}
}
< / pre> وقت التشغيل:
المصفوفات تساوي < br / > المصفوفات ليست متساوية.
< / pre>طريقة نمط Arrays.equals() يقارن عناصر الصفيفين.
ملاحظة: إذا كان الصفيفان موجودين في كائنات مختلفة ولكن لهما نفس القيم ، فإنهما غير متساويين كما هو موضح في المثال أدناه.
public class comparisonArrays2
{
الفراغ الثابت العام الرئيسي (String[] args)
{
// جداول للمقارنة
String[] array1 = سلسلة جديدة[] {"a"، "b"، "c"، "d"}؛
String[] array2 = سلسلة جديدة [] {"a" ، "b" ، "c" ، "d"} ؛
كائن [] arrayObj1 = {array1} ؛
كائن [] arrayObj2 = {array2} ؛
// قارن arrayObj1 و arrayObj2
إذا كان (Arrays.equals (arrayObj1 ، arrayObj2))
System.out.println ("المصفوفات متساوية") ؛
آخر
System.out.println ("المصفوفات ليست متساوية.") ؛
}
}
< / pre>Execution: < / p > < pre class = "prettyprint lang-java" > المصفوفات ليست متساوية.
< / pre>يمكننا أن نرى أن Arrays.equals() لا يمكنه إجراء مقارنة أعمق ولحل هذه المشكلة ، تحتاج إلى استخدام طريقة deepEquals () < / span>.
< / p >The Arrays.deepEquals()
The Arrays طريقة أخرى أكثر فاعلية لمقارنة محتويات المصفوفات بطريقة أكثر تعمقا كما يوحي الاسم.
public static boolean deepEquals(Object[] t1, Object[] t2)طريقة نمط deepEquals تحليل كلا الصفيفين t1 و T2< / SPAN> ويقارنها. بعد التحليل العميق ، يتم إرجاع ture إذا كان الاثنان متساويين بخلاف ذلك false.
صفيفان t1 et t2 < / span > من النوع الكائن متساو إذا كان لديهم واحدة على الأقل من الخصائص التالية: < / p >< p >< / p >
- t1 = t2
- يساوي (t2) إرجاع true.
- إذا كان t1 و t2 لهما نفس نوع مرجع الكائن ، فإن الطريقة deepEquals(t1,t2) إرجاع true.
- إذا كان t1 و t2 لهما نفس النوع البدائي ، فإن الطريقة يساوي (t1، t2) < / سبان> العوائد true.
مثال:
public class comparisonArrays3
{
الفراغ العام الثابت الرئيسي (String[] args)
{
// جداول للمقارنة
سلسلة[] array1 = سلسلة جديدة[] {"جافا"، "php" ، "جافا سكريبت" ، "C ++"} ؛
String [] array2 = سلسلة جديدة [] {"جافا" ، "php" ، "جافا سكريبت" ، "c ++"} ؛
الكائن [] t1 = {array1} ؛
الكائن [] t2 = {array2} ؛
// قارن arrayObj1 و arrayObj2
إذا كان (Arrays.deepEquals(t1, t2))
System.out.println ("المصفوفات متساوية");
آخر
System.out.println ("المصفوفات ليست متساوية.") ؛
}
}
< / pre>< / p>
وقت التشغيل: < / p >< p >< / p >< pre class = "prettyprint lang-java" > المصفوفات متساوية
< / pre>< / p>
المراجع: