Discussions
Categories
- 196.9K All Categories
- 2.2K Data
- 239 Big Data Appliance
- 1.9K Data Science
- 450.4K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 546 SQLcl
- 4K SQL Developer Data Modeler
- 187.1K SQL & PL/SQL
- 21.3K SQL Developer
- 295.9K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.6K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 443 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 Portuguese
Collection data output behavior

Hi, I am working on a sumo project. I am using TraCI 4J to control the simulation. I am stuck in a simple problem:
for (int i = 0; i < 37260; i++) {
Collection<Vehicle> vehicles = conn.getVehicleRepository().getAll().values();
Iterator<Vehicle> itr = vehicles.iterator();
while (itr.hasNext()) {
Vehicle vehicle = itr.next();
if(vehicle.getType()=="typeNS")
System.out.println("Found typeNS");
if(vehicle.getType()=="typeWE")
System.out.println("Found typeWE");
System.out.println(vehicle.getType());
}
}
The last output gives every possible vehicle.getType but the top if statement always get ommitted. There are hundres of typeNS and typeWE but it does not catch that. Any idea? What's the problem here?
Answers
-
if(vehicle.getType()=="typeNS") . . . if(vehicle.getType()=="typeWE") The last output gives every possible vehicle.getType but the top if statement always get ommitted. There are hundres of typeNS and typeWE but it does not catch that. Any idea? What's the problem here?
You are comparing 'objects' and the objects are NOT equal to each other - they are DIFFERENT objects.
Use the equalsIgnoreCase' method of String to compare strings.
public boolean equalsIgnoreCase(String anotherString)
Compares this
String
to another
String
, ignoring case considerations. Two strings are considered equal ignoring case if they are of the same length and corresponding characters in the two strings are equal ignoring case.
The Java Tutorials has trails that show how to compare strings:
https://docs.oracle.com/javase/tutorial/java/data/comparestrings.html