2011-09-12 10 views
1

나는 안드로이드 용으로 처음으로 응용 프로그램을 만들고 Java로 내 첫 번째 응용 프로그램을 만드는 중입니다. 열거 형과 배열 목록의 차이점을 파악할 수없는 것 같습니다. 나는 이미지 파일과 답변으로 저장된 질문에 플래시 카드가있는 간단한 플래시 카드 응용 프로그램을 작성 중입니다. 난 무작위로 난이도의 진보적 인 순서로 flashcards를 표시 할 수 있기를 바랍니다. 배열과 열거 형에 플래시 카드를 저장하면 어떤 이점이 있습니까?이미지를 배열 또는 열거 형으로 저장 : 어느 것이 더 낫습니까?

답변

1

enum과 ArrayList는 너무 멀리 정의되어 있으므로 명확하게 설명하기 위해 열거 형을 읽어야합니다.

열거 형은 한 가지를 설명하는 값의 미리 결정된 목록입니다. 나는이 모든 일의 상태에 대한 가능한 값을 정의 예를

enum Status { 
    Initialized, 
    InProgress, 
    Completed, 
    Failed 
}; 

경우 등 상태 가능한 값의 짧은 목록과 같은 것들에 대한 열거 형을 사용합니다.

Flashcard 앱과 같이 두 가지를 조합하여 사용할 수 있다고 말하고 싶습니다. 플래시 카드를 나타내는 클래스가 필요하고 Flashcard의 이미지와 Flashcard의 아이디어를 구분해야합니다. 이미지는 실제로 Flashcard의 한 속성입니다.

public class Flashcard { 

    public enum Difficulty 
    { 
     Easiest, 
     Easy, 
     MediumEasy, 
     Medium, 
     MediumDifficult, 
     Difficult, 
     MostDifficult 
    } 

    String question; 
    String answer; 
    String pathToImageFile; 

    Difficulty difficulty; 

} 

그래서,이 클래스는 객체와 같은 플래시 카드를 나타낼 것 :

여기에 모두 사용하는 예입니다. 그리고 당신의 앱은이 클래스의 ArrayList (ArrayList<Flashcard>)를 생성하고 당신의 활동에 특정한 난이도 레벨을위한 인스턴스를 제공 할 수 있습니다.

나는 실제로 할 일은 난이도 수준에서 사용 및 정수를 사용하므로 열거 형 값의 거대한 목록을 유지 관리하고 업데이트하는 데 더 많은 어려움을 가질 수있을뿐 아니라 더 어렵고 덜 어려운 것 사이의 명확한 개념을 가질 수 있습니다. enum의 일반적인 사용법을 예제로 보여 드리고자합니다.

여기 열거의 위키 피 디아 링크입니다 :는 HashMap을 사용하는 아이디어에 대한 http://en.wikipedia.org/wiki/Enumerated_type

+1

아마도 플래시 카드 주제 (지리, 음악, 정치 등)가 열거 형의 더 나은 후보가 될 것입니까? –

+0

고마워요! 지금 열거 형의 사용법이 훨씬 나아 졌음을 이해합니다. 나는 아마 둘 다 사용할 것이다! – jtagster

2

배열에 이미지 정보를 저장합니다. 열거 형은 동적으로 채울 수 있지만 열거 형은 동적으로 채울 수 있습니다.

배열은 나중에 쉽게 사용할 수있는 일련의 조작 방법을 제공합니다.

당신은 같은 구조를 사용하여, 당신은 또한 당신이 진보적 인 순서로 카드를 표시하는 것이 쉽게 할 것이다지도의 키를로 난이도를 가진 수는 HashMap를 작성하는 경우 :

의 HashMap < 정수 difficultyLvl는 ArrayList를 < 카드> cardsOnSameDifficultyLvl>

는 ArrayList를 사용하고 HashMap의은/응용 프로그램을 쉽게 추가 할 수 있도록 런타임에/편집 카드를 삭제하고 구조가 텍스트 파일에서 채워, 또는 디렉토리/파일 이름 구조에서 할 수 있습니다. Enums를 사용하면 응용 프로그램의 비즈니스 논리에있는 모든 카드가 하드 코드되어 유지 관리가 어려워집니다.

+0

감사합니다! 나는 그것에 대해 읽어야 할 것이다! – jtagster

관련 문제