package Ġmil an . common . utils Ċ Ċ fun Ġ< T > Ġhas Same Content ( c 1 : ĠCollection < T > ?, Ġc 2 : ĠCollection < T >? ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( c 1 Ġ!= Ġnull Ġ&& Ġc 2 Ġ!= Ġnull Ġ&& Ġc 1 . size Ġ== Ġc 2 . size Ġ&& Ġc 1 . contains All ( c 2 )) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠ Ġ} Ġelse Ġif Ġ( c 1 Ġ== Ġnull Ġ&& Ġc 2 Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠCan Ġperform Ġdeep Ġcheck . Ċ Ġ*/ Ċ fun Ġ< T > Ġhas Same Content ( c 1 : ĠCollection < T > ?, Ġc 2 : ĠCollection < T > ?, Ġcomparator : ĠComparator < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( c 1 Ġ!= Ġnull Ġ&& Ġc 2 Ġ!= Ġnull Ġ&& Ġc 1 . size Ġ== Ġc 2 . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc 1 Iterator Ġ= Ġc 1 . iterator () ĊĠĠĠĠĠĠĠ Ġval Ġc 2 Iterator Ġ= Ġc 2 . iterator () ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( c 1 Iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( comparator . compare ( c 1 Iterator . next (), Ġc 2 Iterator . next ()) Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠ Ġ} Ġelse Ġif Ġ( c 1 Ġ== Ġnull Ġ&& Ġc 2 Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ