programing

Array Lists 어레이 작성 방법

goodcopy 2022. 7. 27. 22:48
반응형

Array Lists 어레이 작성 방법

다음과 같은 배열 목록을 만들고 싶습니다.

ArrayList<Individual>[] group = new ArrayList<Individual>()[4];

하지만 편집이 안 돼이거 어떻게 해?

Oracle 문서에 따르면:

"매개변수화된 유형의 배열을 만들 수 없습니다.

대신 다음을 수행할 수 있습니다.

ArrayList<ArrayList<Individual>> group = new ArrayList<ArrayList<Individual>>(4);

Tom Hawting - taxline이 제안했듯이, 다음을 수행하는 것이 더 좋습니다.

List<List<Individual>> group = new ArrayList<List<Individual>>(4);

다른 사용자가 언급했듯이 ArrayList를 저장하기 위해 다른 목록을 사용하는 것이 좋을 수 있지만 어레이를 사용해야 하는 경우에는 다음 절차를 따릅니다.

ArrayList<Individual>[] group = (ArrayList<Individual>[]) new ArrayList[4];

경고를 억제해야 하지만 이 경우에는 안전합니다.

이 방법은 다음과 같습니다.

ArrayList<String>[] group = new ArrayList[4];

하지만 당신이 억누르고 싶을지도 모르는 경고를 만들어 낼 것입니다.

Array List 어레이를 생성할 수 있습니다.

List<Integer>[] outer = new List[number];
for (int i = 0; i < number; i++) {
    outer[i] = new ArrayList<>();
}

이것은, 이러한 시나리오에 도움이 됩니다.겉옷의 크기를 아시잖아요.하지만 안쪽의 크기는 다양합니다.여기에 크기에 따라 달라지는 배열 목록을 포함하는 고정 길이의 배열을 만들 수 있습니다.이것이 당신에게 도움이 되기를 바랍니다.

Java 8 이상에서는 훨씬 더 나은 방법으로 실행할 수 있습니다.

List<Integer>[] outer = new List[number];
Arrays.setAll(outer, element -> new ArrayList<>());

ArrayList 확장 클래스를 만들 수 있습니다.

class IndividualList extends ArrayList<Individual> {

}

다음으로 어레이를 만듭니다.

IndividualList[] group = new IndividualList[10];

Array List 배열로 동작합니다.어떻게 작동하는지 한 번 알아보세요.

import java.util.*;

public class ArrayOfArrayList {
    public static void main(String[] args) {

        // Put the length of the array you need
        ArrayList<String>[] group = new ArrayList[15];
        for (int x = 0; x < group.length; x++) {
            group[x] = new ArrayList<>();
        }

        //Add some thing to first array
        group[0].add("Some");
        group[0].add("Code");

        //Add some thing to Secondarray
        group[1].add("In here");

        //Try to output 'em
        System.out.println(group[0]);
        System.out.println(group[1]);
    }
}

일부 암호에 대한 크레딧은 켈빈커에 있습니다

이 경우 어레이 목록을 사용하면 특정 위치에 추가할 때 o(n)의 시간이 복잡해집니다.어레이를 사용하는 경우 어레이를 선언하여 메모리 위치를 생성하므로 일정합니다.

일반 유형의 배열을 만들 수 없습니다.Array Lists 목록 만들기:

 List<ArrayList<Individual>> group = new ArrayList<ArrayList<Individual>>();

또는 어레이가 정말로 필요한 경우(경고: 설계 불량!):

 ArrayList[] group = new ArrayList[4];
  1. 작성 및 초기화

    Object[] yourArray = new Object[ARRAY_LENGTH];
    
  2. 기입 액세스

    yourArray[i]= someArrayList;
    

    내부 ArrayList 요소에 액세스하려면:

    ((ArrayList<YourType>) yourArray[i]).add(elementOfYourType); //or other method
    
  3. 읽기 액세스

    배열 요소 i를 ArrayList로 읽으려면 유형 캐스팅을 사용합니다.

    someElement= (ArrayList<YourType>) yourArray[i];
    

    배열 요소 i: 인덱스 j에서 ArrayList 요소를 읽습니다.

    arrayListElement= ((ArrayList<YourType>) yourArray[i]).get(j);
    

List [ ] listAr = new ArrayList [ 4 ];

위 행은 경고를 표시하지만 동작합니다(Array of Array List 작성).

스프라이트 위치에 대해 ArrayLists 배열을 정적으로 선언하려면 다음과 같이 하십시오.

ArrayList<Point>[] positionList = new ArrayList[2];

public Main(---) {
    positionList[0] = new ArrayList<Point>(); // Important, or you will get a NullPointerException at runtime
    positionList[1] = new ArrayList<Point>();
}

동적:

ArrayList<Point>[] positionList;
int numberOfLists;

public Main(---) {
    numberOfLists = 2;
    positionList = new ArrayList[numberOfLists];
    for(int i = 0; i < numberOfLists; i++) {
        positionList[i] = new ArrayList<Point>();
    }
}

주의사항과 복잡한 제안에도 불구하고 ArrayLists 배열은 동일한 유형의 관련된 ArrayLists를 나타내는 우아한 솔루션임을 알게 되었습니다.

ArrayList<String>[] lists = (ArrayList<String>[])new ArrayList[10]; 

수 요.ArrayList<Individual>[] group = (ArrayList<Individual>[])new ArrayList[4];

일반 유형이 아닌 배열을 만든 다음 일반 유형으로 캐스팅해야 합니다.

ArrayList<Integer>[] graph = new ArrayList[numCourses]그건 효과가 있다.

늦었다고 생각합니다만, 같은 문제에 부딪혀, 같은 장소에 다른 서브 클래스의 오브젝트를 보존하기 위해서, 프로젝트의 요구에 따라서 어레이 리스트를 작성할 필요가 있었습니다.그 결과, 다음과 같이 되었습니다.

ArrayList<?>[] items = new ArrayList[4];
ArrayList<Chocolate> choc = new ArrayList<>();
ArrayList<Chips> chips = new ArrayList<>();
ArrayList<Water> water = new ArrayList<>();
ArrayList<SoftDrink> sd = new ArrayList<>();

어레이의 각 어레이 리스트에는 다른 오브젝트(초콜릿, 칩, 물, 소프트 드링크)가 포함되어 있기 때문에 자판기를 시뮬레이트하는 프로젝트입니다.다음으로 각 어레이 리스트를 어레이의 인덱스에 할당했습니다.

items[0]=choc;
items[1]=chips;
items[2]=water;
items[3]=sd;

만약 누군가 비슷한 문제에 부딪히면 그것이 도움이 되기를 바랍니다.

이게 더 사용하기 쉬울 것 같아서...

static ArrayList<Individual> group[];
......
void initializeGroup(int size)
{
 group=new ArrayList[size];
 for(int i=0;i<size;i++)
 {
  group[i]=new ArrayList<Individual>();
 }

넌 할 수 있어Array List 유형의 어레이를 만듭니다.

ArrayList<Integer>[] a = new ArrayList[n];

어레이 내의 각 요소에 대해 Array List를 작성합니다.

for(int i = 0; i < n; i++){ 
    a[i] = new ArrayList<Integer>();
}

Java 경고를 피하고 ArrayList 배열이 있는 경우 ArrayList를 다음과 같이 클래스로 추상화할 수 있습니다.

public class Individuals {
    private ArrayList<Individual> individuals;
    
    public Individuals() {
        this.individuals = new ArrayList<>();
    }
    
    public ArrayList<Individual> getIndividuals() {
        return individuals;
    }
}

그러면 다음 작업을 안전하게 수행할 수 있습니다.

Individuals[] group = new Individuals[4];
ArrayList<String> al[] = new ArrayList[n+1];
for(int i = 0;i<n;i++){
   al[i] = new ArrayList<String>();
}

리스트[]를 작성하여 for 루프에 의해 초기화할 수 있습니다.오류 없이 컴파일:

List<e>[] l;
for(int i = 0; i < l.length; i++){
    l[i] = new ArrayList<e>();
}

array List [ ]l에서도 동작합니다.

언급URL : https://stackoverflow.com/questions/8559092/how-can-i-create-an-array-of-arraylists

반응형