Java Enum: U.S. States and Territories with State Codes
Representing U.S. states and territories as a Java enum
makes your application code cleaner and ensures safe handling of state data. Below is a comprehensive enum with official USPS two-letter state codes:
java
public enum USState {
ALABAMA("AL"),
ALASKA("AK"),
ARIZONA("AZ"),
ARKANSAS("AR"),
CALIFORNIA("CA"),
COLORADO("CO"),
CONNECTICUT("CT"),
DELAWARE("DE"),
FLORIDA("FL"),
GEORGIA("GA"),
HAWAII("HI"),
IDAHO("ID"),
ILLINOIS("IL"),
INDIANA("IN"),
IOWA("IA"),
KANSAS("KS"),
KENTUCKY("KY"),
LOUISIANA("LA"),
MAINE("ME"),
MARYLAND("MD"),
MASSACHUSETTS("MA"),
MICHIGAN("MI"),
MINNESOTA("MN"),
MISSISSIPPI("MS"),
MISSOURI("MO"),
MONTANA("MT"),
NEBRASKA("NE"),
NEVADA("NV"),
NEW_HAMPSHIRE("NH"),
NEW_JERSEY("NJ"),
NEW_MEXICO("NM"),
NEW_YORK("NY"),
NORTH_CAROLINA("NC"),
NORTH_DAKOTA("ND"),
OHIO("OH"),
OKLAHOMA("OK"),
OREGON("OR"),
PENNSYLVANIA("PA"),
RHODE_ISLAND("RI"),
SOUTH_CAROLINA("SC"),
SOUTH_DAKOTA("SD"),
TENNESSEE("TN"),
TEXAS("TX"),
UTAH("UT"),
VERMONT("VT"),
VIRGINIA("VA"),
WASHINGTON("WA"),
WEST_VIRGINIA("WV"),
WISCONSIN("WI"),
WYOMING("WY"),
// U.S. Territories
AMERICAN_SAMOA("AS"),
GUAM("GU"),
NORTHERN_MARIANA_ISLANDS("MP"),
PUERTO_RICO("PR"),
UNITED_STATES_VIRGIN_ISLANDS("VI"),
DISTRICT_OF_COLUMBIA("DC");
private final String code;
USState(String code) {
this.code = code;
}
public String getCode() {
return code;
}
}
Usage Example:
java
USState state = USState.TEXAS;
System.out.println(state.getCode()); // Outputs: TX
SQL Version: U.S. States and Territories Table
To store state information in a database, use the following SQL schema and INSERT
statements:
sql
CREATE TABLE us_states (
id SERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL,
code CHAR(2) NOT NULL UNIQUE
);
Insert Statements:
sql
INSERT INTO us_states (name, code) VALUES
('Alabama', 'AL'),
('Alaska', 'AK'),
('Arizona', 'AZ'),
('Arkansas', 'AR'),
('California', 'CA'),
('Colorado', 'CO'),
('Connecticut', 'CT'),
('Delaware', 'DE'),
('Florida', 'FL'),
('Georgia', 'GA'),
('Hawaii', 'HI'),
('Idaho', 'ID'),
('Illinois', 'IL'),
('Indiana', 'IN'),
('Iowa', 'IA'),
('Kansas', 'KS'),
('Kentucky', 'KY'),
('Louisiana', 'LA'),
('Maine', 'ME'),
('Maryland', 'MD'),
('Massachusetts', 'MA'),
('Michigan', 'MI'),
('Minnesota', 'MN'),
('Mississippi', 'MS'),
('Missouri', 'MO'),
('Montana', 'MT'),
('Nebraska', 'NE'),
('Nevada', 'NV'),
('New Hampshire', 'NH'),
('New Jersey', 'NJ'),
('New Mexico', 'NM'),
('New York', 'NY'),
('North Carolina', 'NC'),
('North Dakota', 'ND'),
('Ohio', 'OH'),
('Oklahoma', 'OK'),
('Oregon', 'OR'),
('Pennsylvania', 'PA'),
('Rhode Island', 'RI'),
('South Carolina', 'SC'),
('South Dakota', 'SD'),
('Tennessee', 'TN'),
('Texas', 'TX'),
('Utah', 'UT'),
('Vermont', 'VT'),
('Virginia', 'VA'),
('Washington', 'WA'),
('West Virginia', 'WV'),
('Wisconsin', 'WI'),
('Wyoming', 'WY'),
('American Samoa', 'AS'),
('Guam', 'GU'),
('Northern Mariana Islands', 'MP'),
('Puerto Rico', 'PR'),
('United States Virgin Islands', 'VI'),
('District of Columbia', 'DC');
Summary
Modeling U.S. states and territories using a Java enum
provides strong typing and clarity in backend code. Pairing it with a properly seeded SQL table ensures consistent data across your APIs and database-driven applications — perfect for forms, filters, and address validation.