java.utilパケットのデータ構造は互いに変換されます。

7917 ワード

一、java.utilパッケージのデータ構造は互いに変換されます。
ここで論じたのは、collectionインターフェースの実現クラス(ArayList、Linked List、Stock、Vector、HashSet、TreeSet)および配列間の変換である。
二、結論
1、collectionインターフェースの実現類(ArayList、LinkdList、Stock、Vector、HashSet、TreeSet)の間は、両方の間で相互に変換されます。それらの多くは、構造関数に他のデータ構造例を導入することによって達成される。stackだけが特殊で、空のstackを先に作成して、他のデータ構造の要素をaddAll方法で追加することができます。
2、配列変換がcollectionインターフェースの実現クラス例(ArayList、Linked List、Stock、Vector、hashSet、TreeSet)は、第三者のクラスorg.apphe.com lections 4.Collection Utilsによって実現される必要がある。
3、collectionインターフェースのインプリメンテーションクラスの例(ArayList、Linked List、Stock、VCector、HashSet、TreeSet)を配列に変換するには、それら自身の例示的な方法T[] toArray(T[] a);に頼るだけでよい。
三、実験コード
import org.apache.commons.collections4.CollectionUtils;

public class Test {

    public static void main(String[] args) {
        /**
         *     
         * */
        System.out.println("origin data:");
        List arrayList = new ArrayList();
        arrayList.add("listElement1");
        arrayList.add("listElement4");
        arrayList.add("listElement3");
        System.out.println("arrayList ele: " + arrayList);

        Set hashSet = new HashSet();
        hashSet.add("setElement1");
        hashSet.add("setElement2");
        hashSet.add("setElement3");
        System.out.println("hashset ele: " + hashSet);
        System.out.println();

        /**
         *   set  List    (ArrayList、LinkedList、Stack、Vector)
         * */
        System.out.println("create list related from set:");
        List arrayList2 = new ArrayList(hashSet);
        System.out.println("arraylist2FromHashset ele: " + arrayList2);
        Vector vector1 = new Vector(hashSet);
        System.out.println("vectorFromHashset ele: " + vector1);
//      Stack stack = new Stack(set);//  ,       
        Stack stack1 = new Stack();
        stack1.addAll(hashSet);
        System.out.println("stackFromHashset ele: " + stack1);
        System.out.println();

        /**
         *  List    (ArrayList、LinkedList、Stack、Vector)      
         * */
        System.out.println("create list related create from each other");
        ArrayList arrayList3 = new ArrayList(vector1);
        System.out.println("arraylist3FromVector: " + arrayList3);
        Vector vector2 = new Vector(arrayList3);
        System.out.println("vector2FromArrayList: " + vector2);
        Stack stack2 = new Stack();
        stack2.addAll(arrayList3);
        stack2.addAll(vector2);
        System.out.println("stack2FromArrayList: " + stack2);
        LinkedList linkedList = new LinkedList(arrayList3);
        System.out.println("linkedListFromArrayList: " + linkedList);
        ArrayList arrayList4 = new ArrayList(linkedList);
        System.out.println("arrayList4FromLinkedList: " + arrayList4);


        /**
         *    List    (ArrayList、LinkedList、Stack、Vector)   set
         * */
        System.out.println("create set related from list:");
        Set set2 = new HashSet(arrayList);
        System.out.println("hashset2FromArrayList ele: " + set2);
        System.out.println();

        /**
         * set        
         * */
        TreeSet set3 = new TreeSet(set2);
        System.out.println("treeset3FromHashset: " + set3);
        HashSet set4 = new HashSet(set3);
        System.out.println("hashset4FromTreeSet: " + set4);


        /**
         *      collect   
         *          
         * */
        Boolean [] arr = new Boolean[]{true,false,false};
        List arraylistFromArr = new ArrayList(); 
        CollectionUtils.addAll(arraylistFromArr, arr);
        System.out.println("arraylistFromArr: " + arraylistFromArr);

        /**
         * collection        
         * */
        String [] arr1 = arrayList.toArray(new String[0]);
        printArray(arr1);
        arr1 = linkedList.toArray(new String[0]);
        printArray(arr1);
        arr1 = vector1.toArray(new String[0]);
        printArray(arr1);
        arr1 = stack1.toArray(new String[0]);
        printArray(arr1);
        arr1 = hashSet.toArray(new String[0]);
        printArray(arr1);
        arr1 = set3.toArray(new String[0]);
        printArray(arr1);
    }

    private static void printArray(String [] arr){
        int count = 0;
        for(String s : arr){
            System.out.print(s + " ");
            count++;
            if(count == arr.length){
                System.out.println();
            }
        }
    }
}
四、参考
http://blog.csdn.net/courage89/article/details/7877722 http://www.cnblogs.com/huangfox/archive/2012/07/05/2577306.html