我用String数组编写了这段代码:
public static String[] prgmNameList = {"bbbbb", "aaaaa"};
现在我的问题是,如何将新项添加到该数组中:
prgmNameList.add("cccc");
答案 0 :(得分:1)
prgmNameList
是一个数组。创建数组对象后,无法更改其大小。如果需要可变大小的容器,请使用集合。例如,使用ArrayList
:
List<String> prgmNameList = new ArrayList<String>(3);
prgmNameList.add("bbbb");
也就是说,如果你坚持使用数组,你需要将你的初始数组复制到一个新的数组中,用于你想要添加到数组的每个新元素,这可能很昂贵。有关详细信息,请参阅System#arrayCopy。事实上,ArrayList
类在内部使用一个数组,一旦使用System.arrayCopy
完全展开,那么为什么要重新发明轮子呢?只需使用ArrayList
答案 1 :(得分:1)
简单来说,请注意以下几点:
prgmNameList[0]
将返回数组中添加的第一个元素List
实施之一 示例代码:
public static List<String> prgmNameList= new ArrayList<String>();
prgmNameList.add("bbb");
prgmNameList.add("bbb");
prgmNameList.add("ccc");
prgmNameList.remove("bbb"); //Removes by object resolved by equals() method
prgmNameList.remove(2); //Removes by index
答案 2 :(得分:0)
你必须像那样使用ArrayList
ArrayList<String> al = new ArrayList<>();
// add elements to the array list
al.add("C");
al.add("A");
al.add("E");
al.add("B");
如果你想像你一样使用数组,你必须知道要添加的元素数量
String [] myList = new String [10];
然后
myList[4]="AA"
- 这不可能添加到myList。 我向你解释ArrayList是如何工作的,然后你会理解。
ArrayList是一个包含来自对象的Array的类。每次添加它时都要检查它是否有地方将数据存储在数组中,否则它会创建更大的新数组并存储数据。
所以ArrayList这是解决方案(或任何其他列表) 如果要添加到myList,则必须实现arratList ..
答案 3 :(得分:0)
您创建了一个无法增长的数组,因为它的大小已经固定。 您需要创建一个列表以添加新元素,如下所示。
List<String> prgmNameList = new ArrayList<String>();
prgmNameList.add("aaaa");
prgmNameList.add("bbbb");
prgmNameList.add("cccc");
答案 4 :(得分:-1)
您要查找的方法是为Collection定义的,但您使用的是带有数组初始值设定项的数组。
我建议切换到List
:
public static List<String> prgmNameList= new ArrayList<>(Arrays.asList("bbbbb","aaaaa"))
然后你可以在它上面调用add
,因为它现在是一个列表。
顺便说一句:尽量防止static
变量中存在可变变量。