2013-10-25 4 views
-2

배열을 만들고 배열 끝에 추가하고 삭제해야합니다.
문제는 배열 "목록"을 초기화하는 Arraylist 생성자를 작성하라는 요청을 받았지만 오류가 발생했습니다. 어떻게해야합니까 ?? !!!Java에서 Array 및 ArrayList를 만드는 방법

01. ArrayList (-1)의 인스턴스 만들기. 목록 크기는 10
02가됩니다. 15 개 항목 추가. 만 10 추가됩니다 여기 03.
목록을입니다
ACEGIKMOQS 삭제 호출
04 세 번 여기 05
여기 목록
입니다 expandByTen
07 호출 목록
ACEGIKM
06.에게 있습니다 ACEGIKM
08. 15 항목 추가.
09. 여기에서
이다 는 C E G I K M B D F H J L N P R T V X Z

import java.util.ArrayList; 

public class Main{ 

    /** 
    * @param args 
    */ 

    // create an array list 

     char []list; 
    int length; 

    ArrayList(int maxSize) 
    { 
     if (maxSize<=0) 
      length=10; 
     else 
      length=maxSize; 

    } 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     ArrayList arrayList; 
     System.out.println("01. Creating an instance of ArrayList(‐1). The list size will become 10"); 
     arrayList = new ArrayList(‐1); 
     System.out.println("02. Adding 15 items. Only 10 will be added"); 
     for (int i = 65; i < 96; i += 2) { 
      arrayList.insertEnd((char) i); 
     } 
     System.out.println("03. Here is the list"); 
     arrayList.print(); 
     System.out.println("04. Calling delete three times"); 
     arrayList.deleteEnd(); 
     arrayList.deleteEnd(); 
     arrayList.deleteEnd(); 
     System.out.println("05. Here is the list"); 
     arrayList.print(); 
     System.out.println("06. Calling expandByTen"); 
     arrayList.expandByTen(); 
     System.out.println("07. Here is the list"); 
     arrayList.print(); 
     System.out.println("08. Adding 15 items."); 
     for (int i = 66; i `enter code here`< 97; i += 2) { 
      arrayList.insertEnd((char) i); 
     } 
     System.out.println("09. Here is the list"); 
     arrayList.print(); 
     } 
    } 
+1

JLS 및 ArrayList 설명서를 읽은 다음 다시 방문하십시오. 당신이 가지고있는 것은 원격 자바가 아닙니다. 당신은 심각한 오해가있는 것 같습니다. 설명해주세요. "ArrayList 생성자를 작성하라는 요청을 받았습니까?" 그리고, WTF는 ** T **입니까? – Ingo

+0

나는 밖으로 나가야합니다 01. ArrayList (-1) 인스턴스 만들기. 목록 크기는 10 02가 될 것입니다. 15 개 항목 추가. 만 10 목록을 ACEGIKMOQS 세 번 다음 05. 삭제 호출 04을 여기 03.리스트에게 있습니다 추가됩니다 ACEGIKM expandByTen 07 다음 15 개 항목을 추가 목록 ACEGIKM 08.에게 있습니다 호출 06 . 09. 다음은리스트입니다 A C E G I K M B D F H J L N P R T V X Z –

+1

낯선 사람들이 "ArrayList constructor" – Ingo

답변

2

ArrayList 이미 ... 현재 이러한 생성자를 작성하지 않아도 존재 클래스 : ArrayList(int maxSize)한다.

는 인스턴스화 당신의 ArrayList 그냥 main 방법에서와 같이

List myList = new ArrayList(); //don't add a -1 parameter 

그런 다음, 교묘하게 당신이 Java API에서 찾을 수 ArrayList의 방법을 사용합니다.

myList.add(...); 
myList.remove(...); 
myList.size(); 
+0

_italic_ ** 그러나 생성자가 목록의 크기를 설정해야하는 경우 !!!!!! **'code' –

+1

Java 세계에 오신 것을 환영합니다. 'ArrayList'는 필요할 경우 자동적으로 더 많은 공간을 추가합니다. 그것에 대해 걱정하지 마십시오. –

+0

@Noornoor arraylist의 최대 크기는 없지만 필요에 따라 커질 수 있습니다 (사용 가능한 메모리까지). –

2

Arraylist는 크기를 동적으로 할당하고 요소를 추가하는 동안 크기를 늘립니다. . 그래서 아래처럼 arraylist를 만들 수 있습니다.

ArrayList arrayList= new ArrayList(10); 

또는

ArrayList arrayList= new ArrayList(); 

당신은 크기 -1와 ArrayList의를 만들 캔트. 바꾸기 new ArrayList(-1);new ArrayList();

다음과 같은 쓸데없는 코드를 프로그램에서 제거하십시오. 그것은 늘 모든

ArrayList(int maxSize) 
    { 
     if (maxSize<=0) 
      length=10; 
     else 
      length=maxSize; 

    } 

에서 일하고있는 방법 print();, deleteEnd();, insertEnd((char) i);

+0

arraylist의 초기 크기 인수를 사용하는 것이 실제 작업에 아무런 영향을 미치지 않을 것이라는 점에 유의해야합니다. 크기가 포함 할 객체의 수와 대략 동일하게 설정하면 더 효율적이게됩니다. –

0
  • Arraylist에서 당신이 char 배열의 새 인스턴스를 만들 어디 표시되지 않습니다 없습니다. 모든 참조가 생성됩니다 NullPointerException
  • 컴파일 오류가 발생하는 ArrayList.insertEnd(..)의 선언이나 구현이 표시되지 않으므로 여기에 포함되지 않았다고 가정합니다 (동일한 내용은 deleteEndexpandByTen 등).
  • 생성자에 정의 된 길이 어딘가에 char[] 인스턴스를 생성한다고 가정하면 생성자 인수가 0보다 작거나 같은 경우 크기를 10으로 설정합니다. main 메서드에서 ArrayList의 인스턴스를 크기 -1로 인스턴스화합니다. 크기가 얼마인지에 따라 list 필드의 인스턴스를 크기가 10 인 인스턴스 (어딘가)에서 생성해야합니다. 그러나 첫 번째 루프 insertEnd 메서드에서 적절한 경계 검사를 수행하지 않는 경우 런타임에 IndexOutOfBounds 예외를 생성하는 15 번의 반복을 시도합니다.

나는 사지로 나가서 당신이 학교 과제물로하고 있다고 생각하니? 그렇지 않다면, Java는 java.util 패키지에 java.util.ArrayList을 포함하는 컨테이너가 많이 있습니다.

+0

학교에 대한 과제입니다. ,하지만 문제는 ... 내가 내 문제를 올바르게 설명 할 수 없다는 것입니다. 그래서 지금이 문제에 봉착했습니다. 과제를 해결하는 데 도움이되는 어떤 힌트도 얻지 못했습니다. 나는 어떤 것이 있는지 궁금합니다. 하나는 할당 파일을 첨부 할 수 있도록 이메일로 도와 드릴 수 있습니다. –

+0

코드를 작성할 사람을 찾고 있다면 그 사람이 아닙니다. 왜 특정 결과물을 얻는지를 설명해 주겠다.하지만 직접 구현 세부 사항을 연습해야한다. 프로그래밍을 더 잘하는 가장 좋은 방법입니다. 그렇게 할 수 없다면, 다른 주제에 참여하고 싶을 것입니다. – MadConan

+0

Java API for ArrayList를 읽으면 몇 가지 아이디어를 얻을 수 있습니다. 구현 세부 정보는 제공하지 않지만 어떤 기능이 제공되는지 설명합니다 (예 : * what * vs * how *). – MadConan

관련 문제