Over a million developers have joined DZone.

Comparing two Objects

· Java Zone

Learn more about Kotlin, a new programming language designed to solve problems that software developers face every day brought to you in partnership with JetBrains.

I recently wanted to compare two objects to see if they were the same. After looking through the cfml ref I couldn't find anything, but I did find that you can use ArrayFind to do it.

Here's a quick test I wrote:

Foo.cfc

component 
{ 
  this.uuid = CreateUUID(); 
}

test.cfm

<cfset foo = new foo()>
<cfset bar = new foo()>
<cfoutput>

is foo equal to foo? #ArrayFind( [foo], foo ) gt 0#<br />
is foo equal to bar? #ArrayFind( [foo], bar ) gt 0#<br />
</cfoutput>

The output when I run this script is:

is foo equal to foo? YES

is foo equal to bar? NO

It also works with persistent entities, this is a test I wrote using the cfcodeexplorer datasource:

<cfset NewArtist = EntityNew( "Artist" )>
<cfset Artist = EntityLoadByPK( "Artist", 1 )>
<cfset Artist2 = EntityLoadByPK( "Artist", 1 )>

<cfset foo = new foo()>

<cfoutput>
is Artist equal to Artist? #ArrayFind( [Artist], Artist ) gt 0#<br />
is NewArtist equal to Artist? #ArrayFind( [NewArtist], Artist ) gt 0#<br />
is Artist equal to Artist2? #ArrayFind( [Artist], Artist2 ) gt 0#<br />
is foo equal to Artist? #ArrayFind( [foo], Artist ) gt 0#
</cfoutput>

The output when I run this script is:

is Artist equal to Artist? YES
is NewArtist equal to Artist? NO
is Artist equal to Artist2? YES
is foo equal to Artist? NO

The Java Zone is brought to you in partnership with JetBrains.  Discover how powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience.

Topics:

Published at DZone with permission of John Whish , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}