How to compare two Objects !!!!
Hi All,
I know that this question has been asked 100 times till now. But trust me I have checked all of them but couldn`t find answer. Here is my question:
I have an objecs. In that object I am setting (Id,Name,DOJ). Now I want to check whether the object I am trying to save in database already exists or not. If exists then I need to check whether all the setters are same for the two objects. Now can anyone tell me ,how to compare two objects directly without comparing the setters individually.
Thanks in advance.
pavan13 wrote:
That is pretty good idea. However I have a query. Does that code actually compare all the setters in a two beans. I don`t want to check each setter seperately.Well, it's pretty meaningless to talk about "comparing setters", setters are methods, they don't have values to compare. Because equals is inside the class, you can simply compare the fields that get set by the setters. "Properties" is probably a better name.
In principal you could write something that tried to find all relevant fields and compare them, using reflection or bean info stuff. The resulting code would be about 50 times longer and take about 50 times longer to run. It's hardly asking a lot to put three comparisons between && operators.
Remember, though, not to compare string fields with ==, you should call .equals on the string fields.
p.s. don't let the bean terminology confuse you. Beans are just ordinary objects which follow a few rules. Personally I wish the term had never been coined.
Edited by: malcolmmc on Dec 6, 2007 4:15 PM
Similar Messages
-
How to compare two database objects?
Hi,
I need to compare two objects with embedded objects/collections in it to tell exact difference between the two.
e.g.,
create type t1 as object (name varchar2(10), age number);
create type t2 as table of t1;
create type t3 as object (user t1, family t2);
... and so on.. this type hirarechy is big in my case..
I want a procedure/function which can tell me what and where is the difference.
PROCEDURE (obj1 T1 , obj2 T1) IS
BEGIN
END;
e.g., t1.name = 'John' and t2.name = 'Mich' then it should return t1.name etc..
Is it possible?
ThanksWhy a new thread?
how to read objects/collections dynamically? -
How to compare an Object of type class?
Hi,
I got a generic array and want to check which class it contains.
Now i tried to use
Class c = T[0].getClass();and later
if(c instanceof Float){
}but this don't work.
So how to compare two instances of Class?
Maybe by looking for the name of the class and compare them?
regards.
Olekimport java.util.*;
public class WorksForMe {
public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
list.add(Float.valueOf(17));
Class<?> cls = list.get(0).getClass();
System.out.println(Float.class.equals(cls)); //true
System.out.println(Float.class == cls); //true
}But again, it's best to avoid this kind of case analysis. -
Hi, I want to compare two objects
using the formula below
if((Integer)v.elementAt(i) == new Integer(comp.getCard(j).getValue())){but it doesn't work
I am trying to compare an element in a vector which was of a type Integer
key1 = new Integer(dk.getCard(f).getValue());note that key1 is actually a key used for a mapping
can anyone tell me how I can compare the elements in vector and the other object was an int.
Hello zainuluk,
You can not use '==' operator to compare to objects in Java, 'cause it just compare the reference of two oprands. You should use the "equals()" method, just like this:
if(Integer)v.elementAt(i).equals(new Integer(comp.getCard(j).getValue())){...}
Or you can get the int value of element in the vector to compare using '==' operator:
if(Integer)v.elementAt(i).intValue() == comp.getCard(j).getValue()){..}
Hello zainuluk,
You can not use '==' operator to compare to objects in Java, 'cause it just compare the reference of two oprands. You should use the "equals()" method, just like this:
if(Integer)v.elementAt(i).equals(new Integer(comp.getCard(j).getValue())){...}
Or you can get the int value of element in the vector to compare using '==' operator:
if(Integer)v.elementAt(i).intValue() == comp.getCard(j).getValue()){..}
I attempted to compare two strings whether they are equal or not. They should return true if both are equal.
One string is based on Taxonomy's Term (i.e. Term.Name) whereas other string is based on String object.
The problem is that both strings which seem equal return false instead of true. Both string values have different special characters though their special characters are & and &
Snapshot of different design & same symbols:
Is it due to different culture or language?
How to compare two strings whether both are equal while ignoring the difference in special characters (& vs &)?
Hi Jerioon,
If you have a list of possible ambiguous characters the job is going to be easy and if (& vs &) are the only charracters in concern awesome.
You can use the below solution.
Before comparing pass the variables through a replace function to standarize the char set.
$Var = Replace($Var,"&","&")
This is going to make sure you don't end up with ambiguous characters failing the comparison and all the char are "&" in this case.
Similar technique is used to ignore Character Cases 'a' vs. 'A'
Regards,
Satyajit
Please “Vote As Helpful”
if you find my contribution useful or “Mark As Answer” if it does answer your question. That will encourage me - and others - to take time out to help you.
??how to compare two resultsets??
hi all!
i need to find out whether two resultsets contain the same data.
the only way i know how to do it in java is to put them into a while loop and fetch the contents first and then compare the contents.
but is there an easier way to compare resultsets?
does anyone know how to compare two resultsets without extracting the data?
the code example here executes two identical queries on an oracle database, compare and print the resultsets.
public ResultSet getResultset(String query)
ResultSet rs=null;
try { rs=Stmt.executeQuery(query); }
catch(Exception e) { e.printStackTrace(); }
return rs;
public static void main(String[] args) {
ResultSet r1=null;
ResultSet r2=null;
try {
database db = new ddatabase();
r1=db.getResultset("Select 'name' from person");
r2=db.getResultset("Select 'name' from person");
if (r1 == r2) {
System.out.println("ok");
System.out.print(r1);
System.out.println();
System.out.print(r2);
else {
System.out.println("not ok");
System.out.print(r1);
System.out.println();
System.out.print(r2);
jdbc.cleanup();
catch(Exception e) {e.printStackTrace();}
and here is the output:
F:\java rs_compare
not ok
oracle.jdbc.driver.OracleResultSetImpl@4413ee
oracle.jdbc.driver.OracleResultSetImpl@786e64
as you can see the resultsets are different though the data they contain have to be the same.
so the 'if(resultset#1 == resultset#2)' does not work.
thanks for any help
best regards
5ithl0rd
Don't cross-post.
I'll bet ResultSet implementations don't override equals() to provide "deep equals" behavior, in which case it'll be no different than using "==".
It's a bad idea to compare two ResultSets this way. You'll have to load both into objects or data structures and compare those in a "deep" way.
Besides, the ONLY way two ResultSets could be different, given the same query, would be if there were multiple clients that could write to the table between queries and change the underlying data. If your two queries are sufficiently isolated, I'd say that the same query will return the same ResultSet.
%
How to compare two different environments
Can any please tell me how to compare two environments like DEVL to TEST?
I know how to compare a project(like DEVL to TEST) but i want to see all the changes in all the objects between two different environments.
Please help me.
Thank you.
That is really a good piece of information.
Does it really matter where we are comparing from?
i will explain,let us say we have DEV and TST environment.
let us say both has same project name and the same number of objects but inside the object they may be different(like number of fields in the same record in both environments).
Now we want to have a compare report between those environments.
We can do in two different ways, right?
(1. source DEV, Target TST)
(2. source TST, Target DEV)
will the result get changed in both the cases?
(except like following)
(first case souce target)
( absent *changed)
(second case would be like following)
( souce target)
( *changed absent)
(but i gess the number of rows in both the cases does not get changed)
let me know if you can not understand the question. sorry about the confusing explanation
How to compare two views/tabels from two systems via RFC
Hello
How to compare two views/tabels from two systems via RFC. I know there is a transactio or program but which
Hi Tina,
You can use a trnasactions like SCMP, SADJ or SCU0 - all tools to do comparison of customizing objects across clients/systems using RFC.
Details of these tools, their usage and functionalities are available in the Help Portal -
[http://help.sap.com/saphelp_47x200/helpdata/en/70/1accb7fab511d18e0f0000e8a48612/frameset.htm]
Best Regards,
Rekha
How to compare two rows in PL/SQL?
Hi All,
How to compare two rows in PL/SQL? Is there any method that I can use instead of comparing them column by column?
Any feedback would be highly appreciated.
PhoenixBai wrote:
Hi All,
How to compare two rows in PL/SQL? Is there any method that I can use instead of comparing them column by column?What "rows" are you referring to?
If you're talking of rows within a PL/SQL associative array there are techniques as described in the documentation... e.g.
SQL> ed
Wrote file afiedt.buf
1 declare
2 type v1 is table of number;
3 r1 v1 := v1(1,2,4);
4 r2 v1 := v1(1,2,3);
5 begin
6 if r1 MULTISET EXCEPT DISTINCT r2 = v1() then
7 dbms_output.put_line('Same');
8 else
9 dbms_output.put_line('Different');
10 end if;
11* end;
SQL> /
Different
PL/SQL procedure successfully completed.
SQL> ed
Wrote file afiedt.buf
1 declare
2 type v1 is table of number;
3 r1 v1 := v1(1,2,3);
4 r2 v1 := v1(1,2,3);
5 begin
6 if r1 MULTISET EXCEPT DISTINCT r2 = v1() then
7 dbms_output.put_line('Same');
8 else
9 dbms_output.put_line('Different');
10 end if;
11* end;
SQL> /
Same
PL/SQL procedure successfully completed.
SQL>If you're talking about rows on a table then you can use the MINUS set operator to find the rows that differ between two sets of data...
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-1980 00:00:00 800 20
7499 ALLEN SALESMAN 7698 20-FEB-1981 00:00:00 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-1981 00:00:00 1250 500 30
7566 JONES MANAGER 7839 02-APR-1981 00:00:00 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-1981 00:00:00 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-1981 00:00:00 2850 30
7782 CLARK MANAGER 7839 09-JUN-1981 00:00:00 2450 10
7788 SCOTT ANALYST 7566 19-APR-1987 00:00:00 3000 20
7839 KING PRESIDENT 17-NOV-1981 00:00:00 5000 10
7844 TURNER SALESMAN 7698 08-SEP-1981 00:00:00 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-1987 00:00:00 1100 20
7900 JAMES CLERK 7698 03-DEC-1981 00:00:00 950 30
7902 FORD ANALYST 7566 03-DEC-1981 00:00:00 3000 20
7934 MILLER CLERK 7782 23-JAN-1982 00:00:00 1300 10
14 rows selected.
SQL> select * from emp2;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7521 WARD SALESMAN 7698 22-FEB-1981 00:00:00 1250 500 30
7566 JONES MANAGER 7839 02-APR-1981 00:00:00 2975 20
7782 CLARK MANAGER 7839 09-JUN-1981 00:00:00 2450 10
7788 SCOTT ANALYST 7566 19-APR-1987 00:00:00 3000 20
7839 KING PRESIDENT 17-NOV-1981 00:00:00 5000 10
7900 JAMES CLERK 7698 03-DEC-1981 00:00:00 950 30
7934 MILLER CLERK 7782 23-JAN-1982 00:00:00 1300 10
7 rows selected.
SQL> select * from emp
2 minus
3 select * from emp2;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-1980 00:00:00 800 20
7499 ALLEN SALESMAN 7698 20-FEB-1981 00:00:00 1600 300 30
7654 MARTIN SALESMAN 7698 28-SEP-1981 00:00:00 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-1981 00:00:00 2850 30
7844 TURNER SALESMAN 7698 08-SEP-1981 00:00:00 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-1987 00:00:00 1100 20
7902 FORD ANALYST 7566 03-DEC-1981 00:00:00 3000 20
7 rows selected.If you actually need to know what columns data is different on "non-matching" rows (based on your primary key) then you'll have to compare column by column.
How to compare two files in java & uncommon text should print in text file.
Hi,
Can any one help me to write Core java program for this.
How to compare two files in java & uncommon text should print in other text file.
thanks
Sam
Hi All,
i m comparing two HTML file.. thats why i am getting problem..
import java.io.BufferedReader;
import java.io.FileReader;
public class textmatch{
public static void main(String[] argv)
throws Exception{
BufferedReader fh =new BufferedReader(new FileReader("internal.html"),1024);
BufferedReader sh = new BufferedReader(new FileReader("external.html"),1024);
String s;
String y;
while ((s=fh.readLine())!=null)
if ( s.equals(y=sh.readLine()) ){
System.out.println(s + " " + y); //REMOVE THIS PRINTLN STATEMENT IF YOU JUST WANT TO SHOW THE SIMILARITIES
sh.close();
fh.close(); }
thanks
Sam
How to compare two files in Java & uncommon text should print in Diff text
Hi All,
can any one help me to write a java program..
How to compare two files in Java & uncommon text should print in Diff text file..
Thanks
Sam
Hi All,
i m comparing two HTML file.. thats why i am getting problem..
import java.io.BufferedReader;
import java.io.FileReader;
public class textmatch{
public static void main(String[] argv)
throws Exception{
BufferedReader fh =new BufferedReader(new FileReader("internal.html"),1024);
BufferedReader sh = new BufferedReader(new FileReader("external.html"),1024);
String s;
String y;
while ((s=fh.readLine())!=null)
if ( s.equals(y=sh.readLine()) ){
System.out.println(s + " " + y); //REMOVE THIS PRINTLN STATEMENT IF YOU JUST WANT TO SHOW THE SIMILARITIES
sh.close();
fh.close(); }
thanks
Sam
How to Compare two Dates in java
How to Compare two Date Field after getting the values from jTextField1.getText() and jTextField2.getText().
Date d1=DateFormat.getDateInstance().parse(yourstring1);
same for d2
d1.compareTo(d2);
could be that i misrememberd the exact naems of some functions or mixed up something in the equence of d1=
How to compare two Universes ?
Post Author: Shrikant
CA Forum: Administration
Hi.. all I want to compare two universes of different data mart to check the table structure. Can anybody please tell me how to compare two Universes of different Datamarts?How i can achive this usinig BusinessObjects Enterprise XI Release 2 ??
Thanks in advance.
Shrikant
Create
table tab1(ID
int ,DE char(10))
Create
table tab2(ID
int ,DE char(10))
Insert
into tab1 Values
(1,'aaa')
Insert
into tab1 Values
(2,'bbb')
Insert
into tab1 Values(3,'ccc')
Insert
into tab1 Values(4,'dfe')
Insert
into tab2 Values
(1,'aaa')
Insert
into tab2 Values
(2,'xx')
Insert
into tab2 Values(3,'ccc')
Insert
into tab2 Values(6,'wdr')
SELECT
tab1.ID,tab2.ID
As T2 from tab1
FULL
join tab2 on tab1.ID
= tab2.ID
WHERE
BINARY_CHECKSUM(tab1.ID,tab1.DE)
<> BINARY_CHECKSUM(tab2.ID,tab2.DE)
OR tab1.ID
IS NULL
OR
tab2.ID IS
NULL
ID column considered as a primary Key
Apart from different record,Above query populate missing record in both tables.
Result Set
ID ID
2 2
4 NULL
NULL 6
ganeshk
How to compare two Universes of two different Datamarts?
Post Author: Shrikant
CA Forum: Integrated Solutions
Hi.. all I want to compare two universes of different data mart to check the table structure. Can anybody please tell me how to compare two Universes of different Datamarts?How i can achive this usinig BusinessObjects Enterprise XI Release 2 ??
Thanks in advance.
/*does record 1 have friend*/
WITH t AS
(SELECT 1 AS Id, 'a' AS NAME, 'type1' AS Col
FROM Dual
UNION ALL
SELECT 2 AS Id, 'a' AS NAME, 'type1' AS Col
FROM Dual
UNION ALL
SELECT 3 AS Id, 'a' AS NAME, 'type2' AS Col FROM Dual)
SELECT count(*) as YesNo
FROM t T1
WHERE T1.Id = 1
AND (T1.Name, T1.Col) IN (SELECT T2.Name, T2.Col FROM T t2 where t2.ID != T1.Id);
1
/*does record 3 have friend*/
WITH t AS
(SELECT 1 AS Id, 'a' AS NAME, 'type1' AS Col
FROM Dual
UNION ALL
SELECT 2 AS Id, 'a' AS NAME, 'type1' AS Col
FROM Dual
UNION ALL
SELECT 3 AS Id, 'a' AS NAME, 'type2' AS Col FROM Dual)
SELECT count(*) as YesNo
FROM t T1
WHERE T1.Id = 3
AND (T1.Name, T1.Col) IN (SELECT T2.Name, T2.Col FROM T t2 where t2.ID != T1.Id);
0
*/
How to compare two xml schemas
Hello guys,
How to compare two xml schemas? is there any tool for that?
Thanksinadvance
kavita//
XML Files may be compared with the oracle.xml.differ.XMLDiff class.
A file consisting of the differences in the xml files gets generated. An XSLT to convert one file to the other also gets generated.
Maybe you are looking for
-
How do I duplicate my original (uncompressed) footage back onto tape?
Hi If anyone can answer this I will be really, really grateful. I've posted on Canon HV30 user forum and also on Creative Cow, but no one on those forums seems to know the answer. Question is how do I make duplicate copies of my original mini dv tape
-
Problem in servlet engine (WLS 7.0) with the chunked transfer
Hi, While using jakarta-slide on weblogic 7.0, I encountered the following problem while uploading files using WebDAV servlet deployed on WLS: "**** This file has a corrupted %%EOF marker, or garbage after the
-
IWhen I try to update my iPad on my PC I keep getting a message saying the device connected to the USB is not working. There is an error 6011 I think. I have updated my iPhone, but iPads wont work. Any ideas.I keep getting a message and the iPad h
-
7210 All-in-one with Windows 7 Draft print extremely slow
I have an Officejet 7210 All-in-One printer and a computer with Windows 7 32bit installed. I downloaded and installed the print driver for windows 7. Printing was working fine including fast printing. I changed the default color preference from "h
-
Where are the specifiction for Megabook S260, there are too much problem regarding this notebook. Graphic ,system hang & unstable.Operating System Windows Xp Pro Sp2 & Home Sp2. Pls advice