How can I delete an element in my array?
I am having a hard time deleting an element in an Array. I have tried for a while and I am beating my head against the desk trying to figure this out. I would greatly appreciate any help.
package javaapplication9;
import java.util.Scanner;
import java.util.ArrayList;
public class JavaApplication9 {
int x;
final int maxContacts = 3;
final String[] FIRSTNAME = { "Josh", "Joe", "Jim" };
final String[] LASTNAME = { "Jones", "Smith", "Thomas" };
final String[] ADDRESS =
{ "142 Washington Ave", "500 Main St", "200 Oak Way" };
final String[] CITY = { "Pittsburgh", "Pittsburgh", "Pittsburgh" };
final String[] STATE = { "PA", "PA", "PA" };
final String[] ZIP = { "15222", "15222", "15222" };
final String[] TELEPHONE =
{ "412-722-1500", "412-498-2500", "412-787-3500" };
String[]firstName = new String[3];
String[]lastName = new String[3];
String[]address = new String[3];
String[]city = new String[3];
String[]state = new String[3];
String[]zip = new String[3];
String[]telephone = new String[3];
String nameSearch;
boolean firstNameFound = true, lastNameFound = true, addressFound =
true, cityFound = true, stateFound = true, zipFound =
true, telephoneFound = true;
Scanner keyboard = new Scanner(System.in);
public void getInfo() {
while (x < maxContacts) {
Scanner input = new Scanner(System.in);
System.out.
println
("Enter '1' To Add A Contact \nEnter '2' To Delete A Contact \nEnter '3' To Search For A Name \nEnter '4' To Display All Contacts \nEnter 'Q' To Quit");
int usersChoice = input.nextInt();
if (usersChoice == 1) {
System.out.print("Please enter a first name: ");
firstName[x] = keyboard.nextLine();
if (firstNameFound) {
System.out.
print("Please enter a last name: ");
lastName[x] = keyboard.nextLine();
}
if (lastNameFound) {
System.out.
print("Please enter an address: ");
address[x] = keyboard.nextLine();
}
if (addressFound) {
System.out.
print("Please enter a city: ");
city[x] = keyboard.nextLine();
}
if (cityFound) {
System.out.
print("Please enter a state: ");
state[x] = keyboard.nextLine();
}
if (stateFound) {
System.out.
print("Please enter a zip: ");
zip[x] = keyboard.nextLine();
}
if (zipFound) {
System.out.
print
("Please enter a telephone number: ");
telephone[x] = keyboard.nextLine();
}
}
if (usersChoice == 4) {
System.out.println("\nList Of Contacts");
System.out.
println("------------------------------");
for (int i = 0; i < FIRSTNAME.length; i++) {
System.out.println("First Name: " +
FIRSTNAME[i] +
"\nLast Name: " +
开发者_运维知识库 LASTNAME[i] +
"\nAddress: " +
ADDRESS[i]
+ "\nCity: " +
CITY[i] +
"\nState: " +
STATE[i] +
"\nZip: " + ZIP[i] +
"\nTelephone: " +
TELEPHONE[i] +
"\n-------------------------\n");
}
for (int i = 0; i < firstName.length; i++) {
System.out.println("First Name: " +
firstName[i] +
"\nLast Name: " +
lastName[i] +
"\nAddress: " +
address[i]
+ "\nCity: " +
city[i] +
"\nState: " +
state[i] +
"\nZip: " + zip[i] +
"\nTelephone: " +
telephone[i]);
}
}
if (usersChoice == 3) {
System.out.print("\n\nPlease enter a name to find ");
// no idea how to
// search a name and
// display the
// corresponding
// number!
nameSearch = keyboard.next();
for (int i = 0; i < firstName.length; i++) {
if (nameSearch.equals(firstName[i])) {
System.out.println("The name " +
firstName[i]
+
" was found "
+
"with the phone number "
+
firstName
[i]);
}
}
}
}
}
public static void main(String args[]) {
JavaApplication9 show = new JavaApplication9();
show.getInfo();
}
}
You should use an a Collection
such as an ArrayList
, not an array. Arrays have fixed size in java, they are not meant to be dynamic.
If you really want to "delete" and keep an array (which is not a good idea), you should then use null
as a sentinel value, meaning that the null
element is "deleted". Then you have to change your other methods to respect this meaning of null
in every other aspect of your program.
Use an ArrayList
...
If you actually still have to use arrays, you can delete items from an array, constructively. All you need do it create a new array which would be one less than the size of the original and copy all relevant items into the new array. I have written an example which shows how to remove an item from an array.
The code is here: http://pastebin.com/irnznxCA
Hope that helps..
精彩评论