如何删除数组中的元素? [英] 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. Thanks.
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();
}
推荐答案
数组不适合删除.您最好使用允许随机插入和删除的列表进行所有中间计算.使用实现接口List< String>的类之一. (或其他元素类型),请参见: http://download.oracle.com /javase/6/docs/api/java/util/List.html [
Arrays are not good for deletion. You should better do all intermediate calculation with lists designed to allow random insertions and deletions. Use one of the classes implementing interface List<String> (or other element type), see: http://download.oracle.com/javase/6/docs/api/java/util/List.html[^].
When you need an array, you can also call the methodtoArray
.
—SA
因此,您需要遍历数组并找到某个值.
首先,您应该更改代码的结构.
我希望这能满足您在课堂上的(官方)知识:
设置一个对象,其中包含1个人的所有数据:姓名,地址,街道,邮政编码,电话等.
之后,您可以浏览用户列表.
检查本教程: http://onjava.com/pub/a/onjava/2002/02/06/jdo1.html [ ^ ]来满足您的需求.
So you need to iterate through an array and find a certain value.
First of all you should change the structure of the code.
I hope this meets your (official) knowledge in class:
Set up an object containing all the data from 1 person: name, address, street, zip, phone, etc.
Afterwards you can browse through the list of users.
Check this tutorial: http://onjava.com/pub/a/onjava/2002/02/06/jdo1.html[^] for a close to your needs attempt.
这篇关于如何删除数组中的元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文