Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 修改数组列表中元素的方法?_Java_Arrays_List_Methods - Fatal编程技术网

Java 修改数组列表中元素的方法?

Java 修改数组列表中元素的方法?,java,arrays,list,methods,Java,Arrays,List,Methods,我的一个朋友让我给他举一个例子,告诉他如何创建数组列表,以及如何添加、显示、删除和修改它。我已经为所有内容创建了方法,除了modify,还有其他一些帮助吗 public class Manager { private static ArrayList<String> list = new ArrayList<String>(); private static BPScanner kb = new BPScanner(); private stati

我的一个朋友让我给他举一个例子,告诉他如何创建数组列表,以及如何添加、显示、删除和修改它。我已经为所有内容创建了方法,除了modify,还有其他一些帮助吗

public class Manager {
    private static ArrayList<String> list = new ArrayList<String>();
    private static BPScanner kb = new BPScanner();
    private static String name;
    public static void main(String[] args) {
        while (true) {
            String input = kb.getMenuStringFromUser("List Manager","Add", "Delete", "Modify", 
                    "Display", "Quit");
            if (input.equals("Quit"))
                break;
            if (input.equals("Add")) {
                add();
            } else if (input.equals("Display")) {
                display();
            }else if(input.equals("Delete")){
                delete();
            }

        }
    }

    public static void add() {
        do{
            name= kb.getStringFromUser("Enter name: ");
        }while(!isAlpha(name));
        list.add(name);
    }

    private static boolean isAlpha(String name){
        char c;
        for(int i=0; i<name.length(); i++){
            c=name.charAt(i);
            if('A'<=c&&c<='Z'||'a'<=c&&c<='z'||c==' '){
            }else{
                return false;
            }
        }
        return true;
    }

    public static void display() {
        System.out.println("\nList:");
        for (int i=0; i < list.size(); i++) {
            kb.getStringFromUser(list.get(i));
            //System.out.println(name);
        }
        String input = kb.getStringFromUser("\nContinue (y/n)? ");
        if (input.startsWith("n")) System.exit(0);
    }

    public static void delete(){
        list.remove(name);
    }

    public static void modify(){

    }
}
公共类管理器{
私有静态ArrayList=新ArrayList();
私有静态BPScanner kb=新BPScanner();
私有静态字符串名;
公共静态void main(字符串[]args){
while(true){
String input=kb.getMenuStringFromUser(“列表管理器”、“添加”、“删除”、“修改”,
“显示”、“退出”);
if(input.equals(“Quit”))
打破
if(输入等于(“添加”)){
添加();
}else if(input.equals(“Display”)){
显示();
}else if(input.equals(“Delete”)){
删除();
}
}
}
公共静态void add(){
做{
name=kb.getStringFromUser(“输入名称:”);
}而(!isAlpha(name));
列表。添加(名称);
}
私有静态布尔值isAlpha(字符串名称){
字符c;

对于(inti=0;i,下面的代码显示了如何在arraylist中的特定位置添加、查看和删除元素

import java.util.ArrayList;

public class RemoveElementFromArrayListExample {

  public static void main(String[] args) {
    //create an ArrayList object
    ArrayList arrayList = new ArrayList();

    //Add elements to Arraylist
    arrayList.add("1");
    arrayList.add("2");
    arrayList.add("3");

    /*
      To remove an element from the specified index of ArrayList use
      Object remove(int index) method.
      It returns the element that was removed from the ArrayList.
    */
    Object obj = arrayList.remove(1);
    System.out.println(obj + " is removed from ArrayList");

    System.out.println("ArrayList contains...");
    //display elements of ArrayList
    for(int index=0; index < arrayList.size(); index++)
      System.out.println(arrayList.get(index));

  }
}
import java.util.ArrayList;
公共类RemoveElementFromArrayListExample{
公共静态void main(字符串[]args){
//创建ArrayList对象
ArrayList ArrayList=新的ArrayList();
//向Arraylist添加元素
arrayList.添加(“1”);
arrayList.添加(“2”);
arrayList.添加(“3”);
/*
要从ArrayList的指定索引中删除元素,请使用
对象移除(int索引)方法。
它返回从ArrayList中删除的元素。
*/
Object obj=arrayList.remove(1);
System.out.println(从ArrayList中删除obj+);
System.out.println(“ArrayList包含…”);
//ArrayList的显示元素
对于(int index=0;index
只需传递一个索引参数。然后使用该索引修改位置索引上的元素。为了更改列表中的某个值,可以使用
list.set(index,element);
(在您的情况下,元素为string)函数

public static void modify(int index)
{
     string nextName = kb.getStringFromUser("Enter name: ");
     list.set(index, nextName);
}

让我们将修改函数定义为

public static void modify(String toModify, String modifyAs) {
    int pos = ar.indexOf(toModify);
    ar.set(pos, modifyAs);
}

toModify
是一个变量,用于保存要修改的项,
modifyAs
用于保存要添加的新项

用指定的元素替换此列表中指定位置的元素(可选操作)。

参数:

index-要替换的元素的索引

元素-要存储在指定位置的元素

list.set(your_index,element);

对于您提到的关于不显示整个列表的问题,请尝试以下操作:从循环中删除任何内容并将其放入:
System.out.println(list.get(i));
我知道我的问题是如何修改数组中的元素,如say change ben to ben?您可以替换元素,checkout
set(int index,E element)
在列表界面。如果您得到所需的输出,请接受答案。
public static void modify() {
    String origName = kb.getStringFromUser("Which name do you want to modify: ");
    if (list.contains(origName)) {
        int index = list.indexOf(name);
        name = kb.getStringFromUser("Enter new name: ");
        list.set(index, name);
    }
}