簡體   English   中英

通過用戶輸入在數組中插入/刪除元素

[英]Inserting / deleting elements in array by user input

我是Java編程的新手。 我想問一下如何將用戶的某些輸入插入/刪除到生成的arraylist中。 並且它應該顯示構成我已經有一個代碼的新列表。.但是它不能正常工作。.這是我的代碼:

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.*;

class New1 {
    public static InputStreamReader r = new InputStreamReader (System.in);
    public static BufferedReader inp = new BufferedReader(r);

    public static void main (String args[]) throws Exception {
        ArrayList employees = new ArrayList();
        employees.add("A");
        employees.add("B");
        employees.add("C");
        employees.add("D");
        employees.add("E");

        Scanner scan1 = new Scanner (System.in);
        System.out.println ("Lists of Employees");
        System.out.println ("What do you want to do?:");
        System.out.println ("1 - Display list. \n2 - Insert New Name. \n3 - Delete an item. \n4 - Nothing." + "\n ");
        int task = scan1.nextInt();

        if (task==1) {
            System.out.println ("Contents of Employees:" + employees);
        } else if (task==2) {
            do {
                System.out.println("Current list is " + employees);
                System.out.println("Add more? (y/n) ");
                if (scan1.next().startsWith("y")) {
                    System.out.println("Enter : ");
                    employees.add(scan1.next());
                } else {
                    break;
                }
            } while (true);

            System.out.println("List is " + employees);
            String[] arr = employees.toArray(new String[0]);
            System.out.println("Array is " + Arrays.toString(arr));
        }
    }

我真的需要這里的幫助。 >。<

首先,您的代碼中存在一些編譯時錯誤。 在代碼的最后一行,缺少“}”。 類塊未關閉。

其次,在下面的代碼行中使用String [] arr =(String [])employee.toArray(new String [0]); 而不是String [] arr = employee.toArray(new String [0]);

如toArray(new String [0])將返回一個對象,並將其存儲在數組中。 因此,您必須將其類型轉換為數組,現在它將正常工作。

您應該對列表初始化進行參數化,否則以下代碼將無法編譯: String[] arr = employees.toArray(new String[0]);

盡管您可以將右側表達式顯式地轉換為String[] ,但這不是一個好習慣,並且無視泛型在編譯時捕獲潛在錯誤的意圖。

我會這樣做:

List<String> employees = new ArrayList<String>();

而不是0 ,將使用list的大小來初始化要創建的數組的大小:

String[] arr = employees.toArray(new String[employees.size()]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM