首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java util 套件測試代碼:Collection retainAll 與 ListIterator 雙向遍歷

     編輯:Java 程式設計入門

兩個獨立測試方法展示 Collection.retainAll() 保留交集與 ListIterator 雙向遍歷、動態插入功能。

package com.diegoyun.apiLearning;
import java.util.*;

public final class UtilTutorial {
    public static void collectionRetainTest() {
        System.out.println("**********collectionRetainTest begin:");
        Collection c1 = new ArrayList();
        Collection c2 = new ArrayList();
        c1.add("aaa"); c1.add("bbb"); c1.add("ccc");
        c2.add("ddd"); c2.add("ccc"); c2.add("eee");
        boolean isRetainSucceed = c2.retainAll(c1); // c2 保留與 c1 交集
        System.out.println("isRetainSucceed = " + isRetainSucceed); // true
        for (Iterator iter = c2.iterator(); iter.hasNext();)
            System.out.println("element = " + iter.next()); // 僅輸出 ccc
        System.out.println("**********collectionRetainTest end:");
    }

    public static void listIteratorTest() {
        System.out.println("**********listIteratorTest begin:");
        List list = new ArrayList();
        list.add("aaa"); list.add("bbb"); list.add("ccc");
        ListIterator iter = list.listIterator();
        // 正向
        while (iter.hasNext())
            System.out.println("element = " + iter.next());
        // 反向
        while (iter.hasPrevious())
            System.out.println("element = " + iter.previous());
        // 動態插入:索引 2 處插入 ddd
        while (iter.hasNext()) {
            int i = iter.nextIndex();
            if (i == 2) iter.add("ddd");
            System.out.println("element = " + iter.next());
        }
        // 插入後反向遍歷
        while (iter.hasPrevious())
            System.out.println("element = " + iter.previous());
        System.out.println("**********listIteratorTest end:");
    }

    public static void main(String[] args) {
        // UtilTutorial.collectionRetainTest();
        UtilTutorial.listIteratorTest();
    }
}

retainAll 修改呼叫端集合(c2),保留與參數集合(c1)的交集。ListIterator 支援雙向游標、add() 插入於游標前位置(即 nextIndex() 位置)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved