JAVA基礎のList


概要:
    1.順序(番号(索引)の順序は、順序の順序ではなく、Setコントラストに対して生じる説)で、集合を繰り返すことができます。
    2.ListはCollectionのサブインターフェースであるので、ListはCollectionの全ての方法を使用することができる。(本人のブログ関連記事を見て)
    3.それ以外にもListは独自の方法、インデックスに関する操作があります(この部分を重点的に紹介します)。
    4.削除時に横になって銃を撃つのを防ぐ  
    5.ListIterator:listを専門に操作するディズエ代機(この例は詳しく説明していません。興味があります。apiを見てください。)
    6.2つの基本的な実現類ArayList(非スレッドセキュリティ)とVector(スレッドセキュリティ)
       1.Vectorは古いレガシー(性能が悪い)ですので、おすすめできません。
       2.Vectorスタックデータ構造は、LinkdListを用いて代替する
    7.Arays.ArayListは固定された長さのListであり、エルゴードでしか操作できない。
    8.LinkdList
       1.二重端行列とスタックを作るために使用できます。
       2.チェーン形式で保存しているので、ランダムアクセスの性能が悪いですが、繰り返し、挿入、削除の性能がいいです。ポインタの指すアドレス(データ構造の知識)を直接変えることができますから。
package com.cxy.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

/**
 * @author cxy
 */
public class ListTest
{
	public static void main(String[] args)
	{
		List l=new ArrayList();
		l.add("   ");
		l.add("  ");
		l.add("   ");
		l.add("  ");
		l.add("  ");
		System.out.println(l);  //           
		
		System.out.println("   3    :"+l.get(3));
		
		System.out.println("           :"+l.indexOf("   "));
		System.out.println("             :"+l.lastIndexOf("   "));
		
		l.set(3, "  ");  //       
		l.add(4,"  ");   //  
		System.out.println(l);
		
		l.remove("   "); //             
		System.out.println(l);
		l.remove(new AA()); //  AA equals    true,             AA   ,        
		System.out.println(l);
		l.remove(new BB()); //BB equals    false,  List           。
		System.out.println(l);
		l.remove(0);  //      
		System.out.println(l);
		
		ArrayList l1=new ArrayList();
		l1.ensureCapacity(64); //      ,             ,        ,    
		l1.trimToSize();  //         ,      。
		
		try
		{
			List temp = Arrays.asList("  ","  ","  ");
		    temp.remove(0);
		}catch(Exception e)
		{
			System.out.println("temp        list,        ");
		}
		
		LinkedList ll = new LinkedList();
		ll.add("aaa");
		ll.add("bbb");
		ll.add("ccc");
		ll.add("ddd");
		System.out.println("  :"+ll);
		ll.addLast("zzz");  //  --  
		ll.removeFirst(); //  --  
		System.out.println("    :"+ll);
		ll.addFirst("kkk"); // --  
		System.out.println("kkk  :"+ll);
		ll.removeFirst(); // --  
		System.out.println("kkk  :"+ll);
		ll.removeLast();  //      
		System.out.println("=========================");
		ll = new LinkedList();
		ll.add("aaa");
		ll.add("bbb");
		ll.add("ccc");
		ll.add("ddd");
		System.out.println("     :"+ll);
		ll.push("kkk");  // --  
		System.out.println("kkk  :"+ll);
		ll.pop();  // --  
		System.out.println("kkk  :"+ll);
		
		ll.offer(""); //  --  
		ll.offerFirst("");  //  true addFirst
		ll.offerLast("");  //  true addLast
		
		ll.poll(); //        
		ll.pollFirst();  //        
		ll.pollLast();  //         
		
		ll.peekFirst(); //        
		ll.peekLast();  //         
		
		ll.removeFirstOccurrence("aaa"); //        aaa
		ll.removeLastOccurrence("aaa"); //         aaa
	}
}


class AA
{
	@Override
	public boolean equals(Object obj)
	{
		return true;
	}
}

class BB
{
	@Override
	public boolean equals(Object obj)
	{
		return false;
	}
}
 
関連記事の接続:
『JAVA基礎のCollection』
『JAVA基礎のセット』
 
宣言:
1.オリジナルの文章は、転載して本文を明記して接続してください。
2.より詳細なAPIを参照してください。  http://docs.oracle.com/javase/7/docs/api/
3.文章は個人の愚見を反映しています。異議があれば、ご指摘を歓迎します。