如何删除数组中的元素? [英] How can I delete an element in my array?

查看:85
本文介绍了如何删除数组中的元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我很难删除数组中的元素.我已经尝试了一段时间,但我还是将头撞在桌子上,试图弄清楚这一点.我将不胜感激任何帮助.谢谢.


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 method toArray.

—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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆