1. 程式人生 > >【Groovy手札】Groovy的List

【Groovy手札】Groovy的List

Groovy採用逗號分隔一個列表(List)中的值,並且會轉譯成JDK中的java.util.List,並且Groovy的預設具體實現為java.util.ArrayList , 但是我們可以手動的轉為其他實現。

def numbers = [1, 2, 3] (1)

assert numbers instanceof List(2) assert numbers.size() == 3 (3)

(1) 定義一個列表,其中的值由逗號進行分隔;

(2)  該列表是實現了java.util.List 介面的一個例項;

(3) 呼叫size()方法,其中包含了3個元素。

甚至,我們可以定義一個混合元素的列表,如:

def heterogeneous = [1,"a", true]

在預設情況下,Groovy中的List實現的是java.util.ArrayList 型別,但是我們也可以使用as 操作符將其強制轉化為我們所期望的型別,如:

def arrayList = [1,2, 3]assert arrayList instanceof java.util.ArrayList

def linkedList = [2, 3, 4] as LinkedList (1)assert linkedList instanceof java.util.LinkedList

LinkedList otherLinked

= [3, 4, 5](2) assert otherLinked instanceof java.util.LinkedList

 (1) 使用as操作符將其強制轉換為java.util.LinkedList實現;

 (2)  將其申明為java.util.LinkedList型別。

我們可以使用 [] 下標操作符來讀取或者設定特定位置的元素的值,並且如果 [] 中的索引值index 是正值的話,將索引index位置的元素,如果為負值的話,那麼將會索引列表最後一個元素。<< LeftShift)操作符可以向列表的尾部新增新的元素。

def letters = [

'a', 'b', 'c', 'd']

assert letters[0] == 'a' (1)assert letters[1] == 'b'

assert letters[-1] == 'd' (2)assert letters[-2] == 'c'

letters[2] = 'C' (3)assert letters[2] == 'C'

letters << 'e' (4)assert letters[ 4] == 'e'assert letters[-1] == 'e'

assert letters[1, 3] == ['b', 'd'] (5)assert letters[2..4] == ['C', 'd', 'e']  (6)

(1)  索引第一個元素值(0起始位)

(2)  使用負值作為索引來獲取最後一個元素;

(3)  通過特定位置索引來設定列表中的元素值;

(4)  使用<<leftShift)操作符來向列表中新增新的元素;

(5)  一次性獲取列表中的兩個元素;

(6)  使用..來獲取列表中一個範圍內的元素,(起始位..終止位)。

相關推薦

Groovy手札Groovy的字串

Groovy提供不同的字串表現形式,包括: def map = [:] map.'單引號' map."雙引號" map.'''三重單引號''' map."""三重雙引號""" map./單斜

Groovy手札Groovy的List

Groovy採用逗號分隔一個列表(List)中的值,並且會轉譯成JDK中的java.util.List,並且Groovy的預設具體實現為java.util.ArrayList , 但是我們可以手動的轉

Groovy手札Groovy的幾種註釋

Groovy共有四種註釋方式,下面詳細介紹一下: 1.1  單行註釋 在Groovy中,單行註釋以// 開始,可以從一行的任意位置開始,// 後面的字元均為註解部分。例如: // a stand

Gradle學習—— Groovy基礎語法以及資料結構

從使用Android Studio開始,Gradle就是一個繞不來的話題,之前並不是很重視Gradle,一直就沒有去學習,到最近的專案發現Gradle實在太強大,Gradle作為構建工具,對比於Maven、Ant來說,在依賴管理、構建生命週期、載入構建系統元件

長期更新Ubuntu常用命令備忘錄

err bsp ubuntu lib ubunt clas apt 問題 error Error Could not get lock /var/lib/dpkg/lock 出現這個問題可能是有另外一個程序正在運行,導致資源被鎖不可用。而導致資源被鎖的原因可能是上次運行安

linux系列vmware12pro安裝centos7

ping entos 配置 行編輯 rip 無法 conf 解決 config 安裝參考:http://blog.csdn.net/guin_guo/article/details/49403889 安裝完成之後ip還是不成功無法連接網絡: 進入/etc/sysconfig

滲透測試NSA Windows 0day漏洞+修復方案

技術 數據 pos 創建 前段時間 更新 服務 主機 ima 這個漏洞是前段時間爆出來的,幾乎影響了全球70%的電腦,不少高校、政府和企業都還在用Windows服務器,這次時間的影響力堪稱網絡大地震。 ------------------------------------

C語言統計數字在排序數組中出現的次數

語言 個數 統計 ret r+ () class tdi times //數字在排序數組中出現的次數。 //統計一個數字在排序數組中出現的次數。比如:排序數組{1,2,3,3,3,3,4,5}和數字3,因為3出現了4次,因此輸出4. #include <stdio

BZOJ 2288 POJ Challenge生日禮物(貪心+優先隊列)

ace urn ons target challenge pri 最大 font return 【題目鏈接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2288 【題目大意】   給出一列數,求最多取m段

福利季《手機歷史漫談》

操作 歷史 三國殺 山寨 真的 時間 外觀 pan 多人 本文地址 原文地址--微信 點擊關註 微信公眾號 手機眾生相 手機大家都不陌生,不管你拿的是高逼格的蘋果手機,還是親民的安卓手機,甚至你固執地懷舊拿著諾基亞的手機,都無

文學文娛《西遊記--悼念楊潔》

width idt c# 陽光 ica 自然 provider div 吸引 本文地址 原文地址--微信 點擊關註微信公眾號 西遊·電視劇 寫作起因 說起《西遊記 》,你首先想到的是什麽?是嫉惡如

poj 1915 Knight Moves 雙向bfs

ask blank time problem one sum for urn == Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 22121 Acc

BZOJ1935/4822[Shoi2007]Tree 園丁的煩惱/[Cqoi2017]老C的任務 樹狀數組

tchar get ont n+1 div 區域 spa 都是 struct 題意:兩道題差不多,都是給你一堆平面上的點,每個點有權值,然後m次詢問求某一矩形區域內的點權和 題解:先離散化,然後將詢問拆成左右兩條線段,然後將點和這些線段一起按x坐標排序,在y軸上維護樹狀數

HDU1251 統計難題 trie樹

courier ava 自己的 while onos ets ctrl pan alloc 統計難題 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Other

Cocos-2dx使用Visual Studio2017 編譯Cocos-2dx 3.15

工具 python spin 分享 error 3.1 soft bsp cocos2d-x 1.Visual Studio2017是微軟今年更新的VS版本,UI看著比之前的更養眼了。推薦從這個網站下載最新的安裝程序:https://www.visualstudio.com

vue.js入門

emp 寫到 logs 組件 images href one mooc 渲染 慕課網視頻學習筆記:http://www.imooc.com/learn/694 1.將html、js、css寫到一個後綴名.vue的文件中,區分這三種類型是通過<template>、

Ensemble methods組合方法&集成方法

zed 加權 最好 rdquo ear 整合 表示 ensemble st算法   機器學習的算法中,討論的最多的是某種特定的算法,比如Decision Tree,KNN等,在實際工作以及kaggle競賽中,Ensemble methods(組合方法)的效果往往是最好的,

HDU 5305Friends 多校第二場(雙向DFS)

tor typedef type clu name article using ring eof 依據題意的話最多32條邊,直接暴力的話 2 ^ 32肯定超時了。我們能夠分兩次搜索時間復雜度降低為 2 * 2 ^ 16 唯一須要註意的就是對眼下狀態的哈希處理。 我採用

python16_day15Django入門

response 最簡 ext tcp inf star -1 解析 為我 一、Django基本 1.什麽是框架   框架,即framework,特指為解決一個開放性問題而設計的具有一定約束性的支撐結構,使用框架可以幫你快速開發特定的系統,簡單地說,就是你用別人搭建好的舞臺

Prince2科普Prince2的七大原則(1)

步驟 哪些 來看 產品 論證 img .com 驗證 mil 經過前幾講中關於PRINCE2六大要素,四大步驟及整體思維架構的學習,相信各位看官已經對於PRINCE2有了大概的了解,那我們今天的學習內容會正式進入到七大原則內容的分享。 我們先來看一下,PRINCE