2014-09-05 8 views
-1

나는 한 클래스에서 사용자가 입력 한 String을 받아들이는 Java 프로그램을 작성 중이다.해당 요소의 필드 값을 사용하여 ArrayList의 요소를 찾는 방법?

별도의 클래스에서 String (itemName), int 및 double 유형의 요소를 포함하는 'Item'클래스 유형의 배열 목록이 있습니다. 나는 사용자 입력 문자열을 'Item'유형의 객체로 변환하는 방법이 있는지 궁금해했다. (어렵다고 들었다.) 또는 배열의 개별 String 요소 itemName에 액세스하는 방법이 있다면, 목록을 사용자가 입력 한 문자열과 비교합니다.

Item.java

public class Item { 
    private String name; 
    private int monetaryValue; 
    private double weight; 

    // Getters and Setters 
    // ... 

    // Other methods 
    // ... 
} 
+1

ArrayList에 'Item'이 있지만 문자열, 정수 및 복식이 포함되어 있습니까? – csmckelvey

+1

'Item'코드를 공유하거나 목록이 포함 된 것을 다시 설명 할 수 있습니까? – Dici

+0

들었던 것이 중요하지 않지만 시도한 것이 중요합니다. – JosEduSol

답변

2

여기 Reflection을 사용하지 않을 것입니다. 모기를 없애기 위해 바주카포를 사용합니다. 차라리 자바를 사용하고 싶습니다. 이 예제 아래

확인 :

List<Item> myList = new ArrayList<Item>(); 
String userInputValue; 

// * Add some items to myList 
// ... 

// * Get user input value 
// ... 

// * Access the array list 
int len=myList.size(); 
for(int i=0; i<len; i++) { 
    if (myList.get(i).getItemName().equals(userInputValue)) { 
     // Do something ... 
    } 
} 
+0

고마워, 스테판! 이것은 내가 필요한 것입니다. – Francis

0

당신이 [name:string] [i:int] [d:double] (예 : john 5 3.4)와 같은 입력 형식을 정의하는 경우는 물론 사용자의 입력에서 Item 객체를 구축 할 수 있습니다. 그런 다음이 String을 분리하고 Integer.parseInt 및 Double.parseDouble을 사용하여 두 개의 마지막 인수를 구문 분석해야합니다.

1

사용자 입력에서 Item을 만들려면, 당신이 할 수 있습니다

String input1; 
String input2; 
String input3; 

// Assign user input to input1, input2, input3 

String itemName = input1; 
int data2 = Integer.parseInt(input2); 
double data3 = Double.parseDouble(input3); 

Item myItem = new Item(itemName, data2, data3); 

배열리스트의 요소에 액세스하려면, 당신은 할 수 있습니다 :

List<Item> items; 
String input; 

// Populate items 

// Assignment user input to "input" variable. 

for (Item item : items) { 
    if (item.getItemName().equals(input)) { 
     // Do something... 
    } 
} 
관련 문제