国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

List 快速刪除連續的多個元素

2019-11-11 06:52:52
字體:
來源:轉載
供稿:網友

現假設有下面這個List:

List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);

如果我想把 23 這兩個元素從該List中移除,大家的第一想法可能是:

list.remove(1);// 此處為啥還是 1 ,這個應該不用解釋了吧list.remove(1);

這樣做,當數據量比較少時,是沒有問題的,但是當數據量多的時候,就很麻煩了。 有人可能會想說,數據量多的時候,可以使用 for 循環來做啊:

for(int i=0; i<2; i++) { list.remove(1);}

OK,這樣也是可以的。 不過,下面我想介紹一種更直觀的方式。直接通過List的API來實現:

list.subList(1,3).clear();

這個API是不是一目了然呢:

subList(1, 3): 取從 第1(包含)第3(不包含) 的這幾個元素的子集clear(): 將這個子集清空

為什么這么做是可以的呢?請看下面 subList() 這個API的 官方說明

Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive. (If fromIndex and toIndex are equal, the returned list is empty.) The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa. The returned list supports all of the optional list Operations supported by this list.

This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list:

list.subList(from, to).clear();

Similar idioms may be constructed for indexOf and lastIndexOf, and all of the algorithms in the Collections class can be applied to a subList.

The semantics of the list returned by this method become undefined if the backing list (i.e., this list) is structurally modified in any way other than via the returned list. (Structural modifications are those that change the size of this list, or otherwise perturb it in such a fashion that iterations in PRogress may yield incorrect results.)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶平县| 长阳| 天门市| 西宁市| 汉中市| 大田县| 那坡县| 疏勒县| 清新县| 从江县| 夏河县| 宣武区| 丽江市| 武隆县| 南和县| 海兴县| 陆良县| 大同市| 宿州市| 尼玛县| 永川市| 图们市| 乌拉特中旗| 赣榆县| 万山特区| 吉木乃县| 青浦区| 普安县| 山东| 广灵县| 海淀区| 阿拉尔市| 曲周县| 龙泉市| 彭水| 秭归县| 昌黎县| 伊金霍洛旗| 侯马市| 伊春市| 巨野县|