2017-01-24 5 views
0

저는 java에서 새롭습니다. 배열 인덱스를 지정하지 않고 배열 문자열에 값을 추가/전달하는 올바른 방법은 무엇입니까?배열에 값을 추가하는 방법

PHP 배열에서 수행 할 작업과 같은 값을 배열에 추가하고 싶습니다.

static String[] var_productname = new String[20]; 

public void setProductName(String productName){ 
    var_productname[] = productName; 

} 
+0

1) Android가 "new to Java"를 시작하기에 좋은 출발점이 아닌 것 같습니다. 2) setter 메소드로'static '이 잘 작동하지 않습니다. 3) "productName"이 배열 인 이유는 무엇입니까? 단 하나의 객체처럼 들린다 –

+0

배열 용량을 확장하는 방법이나 암시 적 인덱스를 유지하는 방법을 묻는 중입니까? – shmosel

답변

2

당신은 ArrayListList 구현을 사용할 수 있습니다. 귀하의 예를 바탕으로

:

static List<String> var_productname = new ArrayList<>(); 

public void setProductName(String productName){ 
    var_productname.add(productName); 

} 

초기 용량은 선택 사항이지만 20 초기 (최대되지 않음) 용량입니다 new ArrayList<>(20)를 사용하여 배열을 인스턴스화 할 수 있습니다.

1

setProductName을 호출 할 때 색인을 지정하지 않으려는 경우 여기에 간단한 방법이 있습니다. (그러나이 메서드는 내부적으로 인덱스를 사용하고 업데이트합니다.)

20 개가 넘는 문자열을 추가하려고하면이 간단한 구현은 예외를 throw합니다. 또한 setProductNamestatic 방법으로 만들었으므로 var_productnamestatic을 만들었으므로 더 유용합니다.

static String[] var_productname = new String[20]; 
static int pnIndex = 0; 

public static void setProductName(String productName) { 
    var_productname[pnIndex++] = productName; 
} 
0

배열은 배열과 Collections

문제라는 개념에 갈 것이다이 경우 다른 데이터 구조

+0

대답은 한 줄보다 길어야하며, 상황에 맞는보다 완벽한 해결책을 설명하기 위해 답을 변경하고 완전한 문장과 구두점을 사용할 수도 있습니다 – jdv

0

직접 요소, 변경 배열을 추가 할 수 없습니다하는 것을 동적 수 없습니다 런타임에 크기를 늘리면 지정된 길이만큼만 값을 추가 할 수 있습니다.

int[] nArray= new int[20];은 (는) 20에서 21으로 동적으로 크기를 늘리고 요소를 추가 할 수 없습니다.

위에서 제안한대로 List 구현을 수행 할 수 있습니다.

관련 문제