今天做的一道測試題出現的,覺得有必要記錄一下,這裏作簡要說明;
題目和代碼如下:
package com.itheima;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test2
{
/*
* 2、 一個ArrayList對象aList中存有若干個字符串元素,現欲遍歷該ArrayList對象,
* 刪除其中所有值爲"abc"的字符串元素,請用代碼實現。
* 分析:
* 1.創建集合對象;
* 2.向集合中添加元素;
* 3.遍歷集合中的元素,並判斷這個元素是否和"abc"相同,如果相同就刪除
* 步驟:
* 1.創建ArrayList集合對象aList
* 2.使用add()方法添加元素
* 3.使用Iterator()方法遍歷元素
* 4.使用equals方法判斷元素是否和"abc"相同
* 5.相同就使用remove()方法刪除該元素
*/
public static void main(String[] args)
{
//創建ArrayList集合對象aList
List<String> aList = new ArrayList<String>();
//添加元素
aList.add("abc");
aList.add("bcd");
aList.add("cde");
aList.add("abc");
//遍歷集合中的元素並判斷元素是否和"abc"相同
for(Iterator<String> it = aList.iterator();it.hasNext();)
{
if(it.next().equals("abc"))
{
it.remove();//這裏使用it調用remove方法,如果使用aList調用就會報錯
}
}
//輸出刪除後,集合中的元素
for(String str : aList)
{
System.out.println(str);
}
}
void |
remove() 從迭代器指向的 collection 中移除迭代器返回的最後一個元素(可選操作)。 |
刪除集合中的元素,不能使用集合.remove(Object obj)刪除,這樣會出現java.util.ConcurrentModificationException
使用迭代器it.remove()可以避免這個問題
size(),length(),length的使用情況
size()用於獲取集合中元素的個數
length()用於獲取字符串長度
length用於獲取數組的長度
他們的角標位都是從0開始,都不包含尾角標元素
在獲取其對應角標最後的元素時,都要減去1:
str.charAt(length() - 1)
arr[arr.length-1]
list集合中的size()方法表示元素的個數,這裏不用-1