<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    asdtiang的博客 感謝blogjava提供的博客交流平臺

    JAVA FX語法學習-----序列

    Posted on 2010-01-15 12:58 asdtiang 閱讀(693) 評論(0)  編輯  收藏 所屬分類: java fx學習筆記

    創建序列的一種方法是顯式列出其各個項。每個項都用一個逗號進行分隔,列表用方括號 "[" 和 "]" 括起來。例如,下面的代碼:

    def weekDays = ["Mon","Tue","Wed","Thu","Fri"];
     

    聲明了一個序列并將其賦給 weekDays。我們在這個例子中使用了 def, 因為在創建序列后我們不打算改變它的值。這里,編譯器知道我們打算創建一個“字符串序列”,因為每個項都聲明為 String 字面值。如果序列是使用 Integer 聲明的(例如,def nums = [1,2,3];), 編譯器將知道我們打算創建“整數序列”。

    您還可以顯式指定序列的類型,方法是修改序列的聲明,使其包含后跟 "[]" 的類型名稱。

    def weekDays: String[] = ["Mon","Tue","Wed","Thu","Fri"];
     

    這會通知編譯器 weekDays 將用來存放 String 序列(而不是單個 String)。

    您還可以在序列中聲明其他序列:

    def days = [weekDays, ["Sat","Sun"]];
     

    在這種情況下,編譯器將自動平展開嵌套的序列以構成單個序列,這樣上面的代碼就等效于:

    def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
     

    還可以通過簡化表示法來更方便地創建可構成等差數列的序列。要創建一個由數字 1 至 100 構成的序列,請使用以下代碼:

    def nums = [1..100];

    您可以使用布爾表達式(又稱為謂詞)聲明一個為現有序列的子集的新序列。例如,請考慮以下代碼:

    def nums = [1,2,3,4,5];
     

    要創建第二個序列(基于此第一個序列中的項)但僅包含大于 2 的數字,請使用以下代碼:

    def numsGreaterThanTwo = nums[n | n > 2];
     

    可以將上面的代碼行用中文表示為:“從 nums 序列中選擇項值大于 2 的所有項并將這些項賦給名為 numsGreaterThanTwo 的新序列。”以粗體突出顯示的“項值大于 2”子句是謂詞。

    在這些代碼中:

    1. 新創建的序列存儲在 numsGreaterThanTwo 中。
    2. 代碼 nums[n | n > 2]; 中標記為粗體的部分指定要從中復制項的原始序列。在我們的示例中,nums 是原始序列的名稱。
    3. 這會選擇 nums 中的項,并按順序返回一個由使表達式為 true 的項構成的新序列。
    4. "|" 字符用來在視覺上將變量 "n" 與代碼的其余部分隔開:nums[n | n > 2];
    5. 代碼 nums[n | n > 2]; 中標記為粗體的部分定義一個布爾表達式,該表達式指定將當前項復制到新序列中時需要滿足的條件。

    序列中的項是按數字索引(從 0 開始)進行訪問的。要訪問單個項,請鍵入序列名稱,后跟該項的數字索引(用方括號括起來):

    def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];

    println(days[0]);
    println(days[1]);
    println(days[2]);
    println(days[3]);
    println(days[4]);
    println(days[5]);
    println(days[6]);
     

    這會將以下內容輸出到屏幕上:

    Mon
    Tue
    Wed
    Thu
    Fri
    Sat
    Sun
     

    您還可以使用后跟序列名稱的 sizeof 運算符來確定序列的大?。?/p>
    sizeof days
     

    以下代碼會將 "7" 輸出到屏幕上:

    def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
    println(sizeof days);
     

    insert 關鍵字可用于在序列中特定項的前面后面插 入一個項。


    注:從技術上講,序列是不可變的,即一經創建就永不更改。在修改序列(例如通過插入或刪除項)時,會在后臺創 建一個新序列并重新指定序列變量,這會給人一種序列已被修改的印象。

    讓我們通過重新創建 days 序列來對此進行研究。請注意,我們現在用 var 來聲明變量 days,因為我們會在創建原始序列后改變它的值:

    var days = ["Mon"];
     

    此時,該序列僅包含一個項 "Mon"。

    我們可以使用 insertinto 關鍵字在該序列的末尾插入 "Tue"

    insert "Tue" into days;
     

    類似地,我們也可以添加 "Fri"、"Sat""Sun"

    insert "Fri" into days;
    insert "Sat" into days;
    insert "Sun" into days;
     

    該序列中現在包含:"Mon""Tue"、"Fri""Sat""Sun"。

    我們還可以使用 insertbefore 關鍵字在給定索引處的項前面插入一個項。請記住,索引是從 0 開始的,因此,在當前的序列中,"Fri" 位于索引位置 2。因此,我們可以在 "Fri" 前面插入 "Thu",如下所示:

    insert "Thu" before days[2];
     

    該序列中現在包含:"Mon"、"Tue""Thu"、"Fri"、"Sat""Sun"。

    要在 "Tue" 后面插入 "Wed",我們可以使用 insertafter 關鍵字:

    insert "Wed" after days[1];
     

    該序列現在包含一周中的每一天:"Mon""Tue"、"Wed"、"Thu"、"Fri"、"Sat""Sun"

    通過使用 deletefrom 關鍵字可以輕松地從序列中刪除項:

    delete "Sun" from days;
     

    該序列中現在包含:"Mon"、"Tue"、"Wed""Thu"、"Fri""Sat"

    還可以刪除位于特定索引位置的項。以下代碼從該序列中刪除 "Mon"(請記住,"Mon" 是第一個項,因此它的索引位置為 0)。

    delete days[0];
     

    要刪除序列中的所有項,請使用后跟序列名稱的 delete 關鍵字:

    delete days;
     

    請注意,delete 僅從序列中刪除項,而不從腳本中刪除 days 變量。您仍可以像以前那樣訪問 days 變量并向其中添加新項。

    使用 reverse 運算符可以輕松地顛倒序列中項的次序:

    var nums = [1..5];
    reverse nums; // returns [5, 4, 3, 2, 1]
     

    有時,您可能希望對序列進行比較,看它們是否相等。序列是按值來比較是否相等的:如果它們的長度相同而且各個項相等,則它 們相等。

    讓我們創建兩個具有相同內容的序列來對此進行測試:

    def seq1 = [1,2,3,4,5];
    def seq2 = [1,2,3,4,5];
    println(seq1 == seq2);
     

    表達式 seq1 == seq2 的值為 true,因為這兩 個序列具有相同數量的項,而且這兩個序列中每個項的值都相等。因此,這些代碼會將 "true" 輸出到屏幕上。

    通過更改其中一個序列中項的數量(而不更改另一個序列),這兩個序列現在具有不同的長度:

    def seq1 = [1,2,3,4,5];
    def seq2 = [1,2,3,4,5,6];
    println(seq1 == seq2);
     

    由于第二個序列比第一個序列長,從而這兩個序列不相等,因此該腳本的輸出為 "false"。

    我們還可以通過更改項的值來使兩個序列不相等(即使這兩個序列的長度仍相同):

    def seq1 = [1,2,3,4,5];
    def seq2 = [1,3,2,4,5];
    println(seq1 == seq2);
     

    由于這兩個序列不相等,因此這些代碼將再次輸出 "false"。

    序列子集提供對序列某些部分的訪問。

    seq[a..b]

    此語法提供對位于索引 a 和索引 b之間(含 a 和 b)各個項的訪問。以下腳本創建一個 weekend 序列,其中僅包含 "Sat""Sun" 項。

    def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
    def weekend = days[5..6];
     

    seq[a..<b]

    使用 "<" 字符可以訪問位于索引 a 和索引 b 之間(含 a,不含 b)的項。我們可以對 days 使用此方法來創建一個 weekdays 序列,其中包含項 "Mon""Fri"

    def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
    def weekdays = days[0..<5];
     

    seq[a..]

    通過省略第二個索引,可以訪問從索引 a 到序列末尾處的所有項。為了與上一個示例保持一致,我們可以按如下方式創建 weekend 序列:

    def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
    def weekend = days[5..];
     

    seq[a..<]

    最后,您可以使用不帶第二個索引的 "<" 來訪問從索引 a 到序列末尾處的所有項(不 含最后一項)。

    def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
    def days2 = days[0..<];
     

    此版本會創建一個 days2 序列,其中包含項 "Mon""Sat"。




    天蒼蒼,野茫茫,風吹草底見牛羊

    posts - 80, comments - 24, trackbacks - 0, articles - 32

    Copyright © asdtiang

    asdtiang的博客 PaidMailz
    點擊廣告網賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
    主站蜘蛛池模板: 成人a毛片免费视频观看| 黄页免费在线观看| 国产综合激情在线亚洲第一页 | 青青青视频免费观看| 午夜色a大片在线观看免费| 亚洲熟女乱综合一区二区| 十八禁的黄污污免费网站| 亚洲性日韩精品一区二区三区| 老子影院午夜伦不卡亚洲| 无码精品人妻一区二区三区免费看 | 最近免费2019中文字幕大全| 成人毛片免费视频| 亚洲精品123区在线观看| 国内自产少妇自拍区免费| 久久久亚洲精华液精华液精华液| 国产精品免费大片| 免费国产高清视频| 乱淫片免费影院观看| 性xxxx视频免费播放直播| 水蜜桃亚洲一二三四在线| 亚洲免费视频播放| 亚洲AV无码国产在丝袜线观看| 亚洲视频在线观看免费| 亚洲喷奶水中文字幕电影 | 久久国产精品免费一区二区三区| 成人免费视频观看无遮挡| 亚洲欧美成人综合久久久| 精品熟女少妇av免费久久| 精品亚洲AV无码一区二区| 成在线人永久免费视频播放| 香蕉国产在线观看免费| 久久国产精品亚洲一区二区| 妻子5免费完整高清电视| 国产亚洲视频在线观看网址| 亚洲精品国产成人片| 国产亚洲精彩视频| 亚洲国产成人一区二区精品区| 一本到卡二卡三卡免费高| 亚洲AV人无码综合在线观看| 18禁超污无遮挡无码免费网站国产 | 国产亚洲自拍一区|