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];
작성 및 초기화
Object[] yourArray = new Object[ARRAY_LENGTH];
기입 액세스
yourArray[i]= someArrayList;
내부 ArrayList 요소에 액세스하려면:
((ArrayList<YourType>) yourArray[i]).add(elementOfYourType); //or other method
읽기 액세스
배열 요소 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
'programing' 카테고리의 다른 글
v-slot 프로펠러를 사용하는 경우 템플릿 조건 (0) | 2022.07.28 |
---|---|
GCC 최적화 레벨은 몇 개입니까? (0) | 2022.07.27 |
sscanf("123456789123456789123456789123456789", "%d", &n")는 동작을 정의했습니까? (0) | 2022.07.27 |
vuejs에서 다른 모달 표시 후 모달은 자동으로 숨깁니다. (0) | 2022.07.27 |
큰 파일 전체 Mmap() (0) | 2022.07.27 |