1. 程式人生 > >clear方法清空list集合(或map或其他集合)中的所有資料及其好處

clear方法清空list集合(或map或其他集合)中的所有資料及其好處

背景

因為專案需要重置初始狀態,這時候需要清空原有的部分集合資料。這裡我以list集合為例說明一下,其他的map集合都是可以相通的。

程式碼實現

private List<String> list = new ArrayList<>();
    /**
     * clear方法移除集合中的所有元素
     */
    private void clear() {
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");

        Log.e("not clear"
, list.toString()); list.clear();// 呼叫clear方法清空集合中的所有資料 Log.e("clear size", "" + list.size()); }

以上程式碼執行後,列印的日誌資訊如下:

這裡寫圖片描述

這裡可以看到,原來集合中有資料,但是呼叫clear方法後,集合中的資料都被清空了,此時集合的大小為0,表示集合中沒有元素存在。

clear方法原始碼解讀

下面就是clear方法的原始碼:

/**
     * Removes all of the elements from this list (optional operation).
     * The list will be empty after this call returns.
     *
     * @throws
UnsupportedOperationException if the <tt>clear</tt> operation * is not supported by this list */
void clear();
上面的註釋說的非常的明白:移除集合中的所有元素。這個集合呼叫該方法後集合會被置空。

好處分析

當然,想讓一個集合為空有另外的方法,比如重新new一個集合。但是你重新new的時候,會建立一個新的物件,如果設計到需要多次清空集合的操作,你豈不是需要重新建立很多的物件嗎?原來的物件分配的記憶體沒被清空,又去新建一個物件分配一個新的記憶體,這樣會對程式的效能造成一定的影響。

但是你呼叫clear方法清空集合中資料的時候,這時候物件在系統中分配的記憶體還是隻有一個,不會重新去建立分配新的記憶體,這樣可以極大的優化程式的效能。

===========================================================================

A little bit of progress every day!Come on!

相關推薦

clear方法list集合map其他集合所有資料及其好處

背景 因為專案需要重置初始狀態,這時候需要清空原有的部分集合資料。這裡我以list集合為例說明一下,其他的map集合都是可以相通的。 程式碼實現 private List<String> list = new ArrayLis

appium-java 無法使用元素的clear()方法EditText的內容

appium自帶的clear只能從前往後清除,根據網上資料結合自己實際專案,解決方法如下: 解決思路 1.click元素 2.將游標定位到文字框的後面 3.選中文字 4.按backspace刪除  2、3、4封裝到了一個方法當中,如下所示 public clas

Python遍歷列表的方法enumerate,以及list方法

遍歷list方法: 方法一: tmplist = [1234, 5677, 8899] for id in tmplist:     print tmplist 輸出:  1234  5677  8899 方法二:用函式enumerate: enumerate()是py

為什麽使用 Arrays.asList得到的集合,使用remove( )和 add( )方法會拋出unsupportedoperationexception不支持操作異常

操作 err move lan 16px exceptio operation amp span  這是由於:    Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。 Arrays$ArrayList

input 值。轉載

字符 clas 方式 描述 .com 空字符串 大型 nbsp ref ref顧名思義我們知道,其實它就可以被看座是一個組件的參考,也可以說是一個標識。作為組件的屬性,其屬性值可以是一個字符串也可以是一個函數。 其實,ref的使用不是必須的。即使是在其適用的場景中也不是非用

中文輸入法觸發input事件 js繫結事件:addEventListener和on的區別 select下拉框用empty()方法 option

中文輸入法觸發input事件 compositionstart 當瀏覽器有非直接的文字輸入時, compositionstart事件觸發. compositionend 當瀏覽器是直接的文字輸入時, compositionend事件觸發 解決方法: 這裡還有一個問題: 在有些瀏

Linux上批量日誌檔案非刪除

背景 Linux伺服器上,程式執行一段時間後,日誌可能佔滿了磁碟,導致磁碟可用空間告警,這時就需要批量清空(非刪除)日誌檔案 錯誤做法 一般可能會寫個批量刪除的指令碼,定時去執行,形如: #!/bin/bash # 檢視/opt目錄下,所有日誌檔

memset一個結構型別的變數陣列

將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ASCII值, 塊的大小由第三個引數指定,這個函式通常為新申請的記憶體做初始化工作, 其返回值為指向S的指標。 需要的標頭檔案 <memory.h> or <string.h> 函式原型  void *memset(v

Jmeter腳本錄制方法--手工編寫腳本jmeter與fiddler結合使用

wav 兩個 com 情況下 r環境 正則表達式 stat 數據 右鍵 手工編寫腳本,建議使用這一種方法,雖然寫的過程有點繁瑣,但調試腳本比前兩者方式都要便捷。 首先來看下三種方式的比較吧,不然看不出什麽。 三種方式的優劣: badboy:   1、有時候錄制不了,兼容性較

python3:用程式碼證明dict比list就像飛機和蝸牛

dict 速度快的原因是應用的雜湊演算法,是直接匹配的方式,list需要遍歷,當資料量大的時候dict 佔優勢. 雜湊還有一個好處就是不會隨著資料量變大而變慢. 下邊我用一段程式碼證明.有不明白的地方要看我的註釋. from random import randint de

LeetCode 645. 錯誤的集合C、C++、python

集合 S 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某一個元素複製了成了集合裡面的另外一個元素的值,導致集合丟失了一個整數並且有一個元素重複。 給定一個數組 nums 代表了集合 S 發生錯誤後的結

自己實戰整理面試題--集合帶答案,不斷更新

Set 和 List 區別? ArrayList 和 LinkedList 區別? 如果存取相同的資料,ArrayList 和 LinkedList 誰佔用空間更大? List 和 Map 區別,Arraylist 與 LinkedList 區別,ArrayList 與 Vector 區別? S

寫給正在讀研一的自己----------------通過大佬總結的一些閱讀文獻的方法與受益匪淺的習慣令人引起共鳴的想法

閱讀文獻一定不要心浮氣躁! 首先,一定要明確你讀文獻的目的 一般研究人員的目的無非是要通過文獻增加自己的廣度,並且希望這些文獻可以提供給自己一些新的思路,如果讀完一篇文獻什麼感受也沒有,那這一定是一段十分糟糕的閱讀文獻的經理。 不要為了讀文獻而讀文獻,一味的去讀,而沒有

Java語言中List、Set、Map三種集合之間的區別

List、Set是實現了Collection介面的子介面;而Map是另一個集合介面。 1.  三者之間的區別如下: 1) 元素重複性: ① List允許有重複的元素。任何數量的重複元素都可以在不影響現有重複元素的值及其索引的情況下插入到List集合中; ② Set集合

醜數集合263、264、313

題目說明:1是醜數  暴力解法: num反覆除2,3,5直到不能整除。最終判斷剩餘的數字是否為1,如果是1則為醜數,否則不是醜數。 類似求質數的解法:link 每一個醜數必然是之前醜數與2,3或5的乘積得到的,這樣下一個醜數就是用之前的醜數分別乘以2,3,5。 詳

python3.6—將檔案record.txt資料進行分割並分別儲存(附錄:檔案開啟模式,檔案物件方法以及字串使用及註釋

分割要求:         1.讀入record.txt檔案中的資料內容         2.將boy的對話單獨儲存到名為“boy_count.txt”的檔案中       &n

python初始化list列表1維、2維

修改 但是 init 二維數組 方法 for range row lis 1.初始化遞增的list: list1 = list(range(10))#print list1#[0,1,2,...,9] 2.初始化每項為0的一維數組: list2 = [0] * 5#prin

Java基礎-new一個在不同個包且只有protected構造方法的類的物件匿名內部類的使用

目錄 前言   如何new一個在不同個包中且只有protected構造方法的類的物件呢?在講解如何實現之前,來講一下事情的緣由。下面將說明如何實現(這裡主要講的是如何使用匿名內部類實現)。後續描述的內容如有問題請廣大讀者能夠耐心指出,給讀者帶來不便

js遍歷集合Array,Map,Set

Array可以使用下標,Map和Set不能使用下標,ES6引入了iterable型別,Array,Map,Set都屬於iterable型別,它們可以使用for...of迴圈來遍歷:var a = ['

十月微信小程式導航:官方文件+精品教程+demo集合10月14日更新

1:官方工具: 5:微信小程式公測接入指南: 導航系列: 特別說明: 1:不瞭解微信小程式的同學,請先搜尋一下微信小程式究竟是什麼,有哪些特性; 2:有htmlcssjs基礎者可以直接進入實踐,邊實踐邊學習,尤其是有react與vue基礎