[java] ArrayList


JAvaのArrayListCollection Frameworkの一種である.C++のようにoperator[]をサポートすれば良いのですが…E get(int index)の方法で入札者のアクセスをサポートします.
ほとんどの機能は参考サイトで良いです.
http://docs.oracle.com/javase/6/docs/api/index.html?index-filesindex-1.html
###1. ArrayListのfill(C++のstd::fill)
import java.util.ArrayList;
import java.util.Collections;
/*...중략...*/
ArrayList<Integer> v;
v=new ArrayList<>(Collections.nCopies(10,4));
//10개의 배열을 생성후, 4로 초기화 함
nCopiesの2番目のパラメータにnew CLASS()を入れると、すべての配列が1つのオブジェクトを指します.これはassignのような方法ではありません.
だからそうすることもできます.
class AAA{
	/*...*/
}
ArrayList<AAA> v=new ArrayList<>(Collections.nCopies(10,null));
for(int i=0;i<v.size();i++){
	v.set(i,new AAA());
}
###2. Arrayのfill(C++のstd::fill)
Integer[] v;
v=new Integer[10];
Arrays.fill(V,7);	//V배열 모두를 7로 채움
バイナリ検索とソートもArraysに属します.
== 우선 배열자체를 할당한다, 각 원소를 한번에 할당하는 방법은 없다고 한다. ==
###3. ArrayListソート1. 객체 안에 비교함수를 만들 경우
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Collections;
import java.util.Random;
class AAA{
	public Integer first;
    public Integer second;
    public int compareTo(AAA a){
    	return this.first < a.first ? -1 : this.first > a.first ? 1 : 0;
    }
}
public class Main{
	public static void main(String[] args){
        ArrayList<AAA> a = new ArrayList<>(Collections.nCopies(10, null));
        Random rand = new Random();
        for(int i = 0; i < 10; i++){
        	a.set(i, new AAA());
            a.get(i).first = rand.nextInt(100);
            a.get(i).second = i * i;
        }
        Collections.sort(a, AAA::compareTo);	// 정렬 방법1
        // a.sort(AAA::compareTo);			// 정렬 방법2
        for(AAA i : a){
        	System.out.println(i.first + '\t' + i.second);
        }
    }
}
Collections.sort(인스턴스 이름, 객체 이름::비교함수);```
또는
インスタンス名.sort(オブジェクト名::比較関数);````
使用します.2. 객체 밖에 비교함수를 만들 경우
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Collections;
import java.util.Random;
class AAA{
	public Integer first;
    public Integer second;
}
class ComparatorAAA implements Comparator<AAA>{
	@Override
    public int compare(AAA a, AAA b){
    	return a.first < b.first ? -1 : a.first > b.first ? 1 : 0;
    }
}
public class Main{
	public static void main(String[] args){
        ArrayList<AAA> a = new ArrayList<>(Collections.nCopies(10, null));
        /*...*/
        Collections.sort(a, new ComparatorAAA());	// 정렬 방법1
        // a.sort(new ComparatorAAA());			// 정렬 방법2
        /*...*/
    }
}
Collections.sort(인스턴스 이름, new 비교클래스());```
또는
インスタンス名.sort(新しい比較クラス);`````
使用します.
###4. アレイのソート1. 객체 안에 비교함수를 만들 경우
import java.util.Comparator;
import java.util.Collections;
import java.util.Random;
import java.util.Arrays;
class AAA{
	public Integer first;
    public Integer second;
    public int compareTo(AAA a){
    	return this.first < a.first ? -1 : this.first > a.first ? 1 : 0;
    }
}
public class Main{
	public static void main(String[] args){
        AAA[] a = new AAA[10];
        /*...*/
        Arrays.sort(a, AAA::compareTo);	// 정렬
        /*...*/
    }
}
Arrays.sort(インスタンス名、オブジェクト名::比較関数);```
使用します.2. 객체 밖에 비교함수를 만들 경우
import java.util.Comparator;
import java.util.Collections;
import java.util.Random;
import java.util.Arrays;
class AAA{
	/*...*/
}
class ComparatorAAA implements Comparator<AAA>{
	@Override
    public int compare(AAA a, AAA b){
    	return a.first < b.first ? -1 : a.first > b.first ? 1 : 0;
    }
}
public class Main{
	public static void main(String[] args){
        AAA[] a = new AAA[10];
        /*...*/
        Arrays.sort(a, new ComparatorAAA());	// 정렬
		/*...*/
    }
}
Arrays.sort(インスタンス名、new比較クラス();```
使用します.