2012-05-26 3 views
0

인터넷에서 검색했지만 여전히 이해할 수 없으므로 여기에서이 질문을합니다. 작은 프로그램 고정 배열에 새 요소 추가

아래, 나는 내가 원하는 모든 변경하지 않고 [2]에서 투어를 가하고,이 개 투어 인스턴스를 생성 "투어 투어 [] = 새로운 투어 [2];".

많은 사람들이 ArrayList를 추천하지만이 코드에서 어떻게 수행해야할지 모르겠다.

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

    class Tour{ 
     private String tourId; 
     private String tourDescription; 
     private double tourFee; 
     private int numOfBooking; 

     public Tour(String tourId,String tourDescription,double tourFee){ 
      this.tourId=tourId; 
      this.tourDescription=tourDescription; 
      this.tourFee=tourFee; 
     } 

     public void print(){ 
      System.out.println("ID:"+this.tourId); 
      System.out.println("Desc:"+this.tourDescription); 
      System.out.println("Fee:"+this.tourFee); 
     } 
    } 


    Tour tour[]=new Tour[2]; 
    tour[0]=new Tour("AB001","TOUR1",100); 
    tour[1]=new Tour("AB002","TOUR2",200); 
} 
} 

답변

1

를 사용하여 추가 요소를 유지할 수 있고, 같은 나는 확실히 ArrayList를 추천 할 것입니다 :

코드는 스냅. 단지 다시 tours.add() 전화, ... 이런 식으로

ArrayList<Tour> tours = new ArrayList<Tour>(); 
tours.add(new Tour("AB001","TOUR1",100)); 
tours.add(new Tour("AB002","TOUR2",200)); 

새 투어를 추가 할 때마다 사용합니다. 배열의 시나리오는 불가능으로

+0

문제가, 실제 코드는 더 이상이보다 및 다른 기능을 가지고, 내가 말한 것처럼 코드를 변경하면 대부분의 프로그램을 변경해야한다고 생각합니까? – Qin

+1

선택의 여지가 많지 않습니다. 배열의 길이를 변경할 수는 없습니다. –

+0

그래, 조금 성가시다.하지만 일단 어떻게해야하는지 알게되면 지금부터는 기억할 것이고 다시 같은 문제를 만들지는 않을 것이다 .- 많은 것들이 있다면, 편집기에서 찾기/바꾸기를 사용하면 변경 횟수를 최소화 할 수 있습니다. – wattostudios

0

둘러보기 [2]를 추가하려는 경우 배열에 세 가지 요소가 필요합니다. 맞습니까? 그렇지 않으면

: 자신의 길이가 고정되어 있기 때문에

List<Tour> tour = new ArrayList<Tour>(); 
tour.add(new Tour("AB001", "TOUR1", 100); 
tour.add(new Tour("AB002", "TOUR2", 200); 
tour.add(new Tour("AB003", "TOUR3", 300); 
0

당신은, 배열을에서 할 수 없습니다. ArrayList에 실제로 자바에서 dynamic array의 구현입니다 배열

의 새로운 instacne 만들기

  1. 사용 ArrayList
  2. 에게,이 : 거의
    귀하의 질문은 이미 대안을 보여줍니다 당신이 실제로 원하는 것일 확률이 높습니다.

    기본 생성자로 인스턴스를 생성하고 ArrayList.add(index,element)을 사용하여 특정 위치에 요소를 추가하거나 ArrayList.add(element)을 추가하여 요소를 추가하십시오. 배열은 실제로 길이를 고정,

    List<Tour> tours = new ArrayList<Tour>(); 
    tours.add(new Tour("AB001","TOUR1",100)); 
    tours.add(new Tour("AB001","TOUR1",100)); 
    

    당신은 당신이 발견으로 ArrayList.add(element)

0

, 여기에 배열 목록으로 동일한 프로세스를 수행하는 방법은 다음과 같습니다

ArrayList<Tour> tours = new ArrayList<Tour>(); 
tours.add(new Tour("AB001","TOUR1",100)); 
tours.add(new Tour("AB002","TOUR2",200)); 
tours.add(/*another tour, and so forth*/); 
// to convert to a Tour[], use the following: 
Tour[] tourArray = tours.toArray(new Tour[tours.size()]); 

의 ArrayList의 데이터 세트의 크기를 알 수없는 경우에 매우 유용합니다.

0

배열 목록을 사용하여이 코드를 , 간단하다

Tour tour[]=new Tour[2]; 
tour[0]=new Tour("AB001","TOUR1",100); 
tour[1]=new Tour("AB002","TOUR2",200); 

이로 교체 :

ArrayList<Tour> tours = new ArrayList<Tour>(); 
tours.add(new Tour("AB001","TOUR1",100)); 
tours.add(new Tour("AB002","TOUR2",200)); 

을 요소가 ArrayList를, 단순히 tour.get (인덱스)를 사용하여 얻을; 당신이 Tour tour[] = new Tour[2] 같은 자바 배열을 만들 때

1

이는 만에 두 요소를 추가 할 수 있음을 의미합니다.

는 것 ArrayList를 사용하여이를 구현하려면 : 그런 다음 그들은 ArrayList에 대한 맞다이

ArrayList<Tour> tour = new ArrayList<Tour>(); 
tour.add(new Tour("AB001", "TOUR1", 100); 
tour.add(new Tour("AB002", "TOUR2", 200); 
tour.add(new Tour("AB003", "TOUR3", 300); 
0

으로 배열 코드를 대체 당신이 문을

import java.util.ArrayList 

를 추가 수입

을; 이처럼 사용

List<Tour> tours = new ArrayList<Tour>(); 
tours.add(new Tour("AB001","TOUR1",100)); 
tours.add(new Tour("AB002","TOUR2",200)); 

당신은 java.util의를 가져와야합니다 새로운 할당하지 않는 한 *

0

이 불가능합니다.. 프리미티브 배열은 확장 할 수 없으므로
또는 컬렉션을 사용하여 동적으로 새 개체를 목록에 추가 할 수 있습니다.
예는 다음과 같습니다

List<Tour> tourList = new ArrayList<Tour>(10); 
tourList.add(0, new Tour("AB001", "TOUR1", 100)); // add at first  
tourList.add(1, new Tour("AB002", "TOUR2", 200)); // add next to first 

이 방법 당신은 목록의 위치에 Tour 인스턴스의 수를 추가 할 수 있습니다.
그리고 당신은 당신이 코드를 다음 필요가 들어 Tour
의 원시적 배열로 다시 tourList을 변환 할 수 있습니다

Tour [] toursArray = new Tour[ tourList.size() ]; 
tourList.toArray(toursArray);