2013-10-03 2 views
1

여러 문자열 값의 목록이있는 구조를 만들려고합니다. 예 : "0212"와 나는 3 개의 ArrayLists를 원한다. 첫 번째 ArrayList는 값 "02"의 첫 번째 부분을 취하고 두 번째 부분은 두 번째 부분 인 "1"을 취하고 세 번째 부분은 세 번째 값 "2"를 취합니다. 그런 다음 여러 값이 값의 첫 번째와 두 번째 부분에 대해 동일한 값을 가지므로 특정 값을 더 빨리 찾을 수 있도록 값 목록을 반복 할 수 있어야합니다. 그런 다음 "0212"와 일치하는 값을 가진 개체에 연결하려고합니다. 나는 누군가가 내가 설명하려고하는 것을 이해하고 누군가가 나를 도울 수 있다면, 나는 그것을 감사하게 생각한다. 미리 감사드립니다. 각각 하나로 표시되는 값이 너무 단단 (세 부분을 정의하기 때문에중첩 ArrayList를 구현하고이를 Android Java에서 반복 수행하는 방법

public void setUpValues() 
{ 
    String otherString = "4210"; 

    Iterator<DataObject> it = dataObjects.iterator(); 

    while(it.hasNext()) 
    { 
     DataObject currentDataObject = it.next(); 
     if(currentDataObject.getAddress().equals(otherString)) 
     { 
      System.out.println("IT WORKSSSSSS!"); 
      currentDataObject.setValue("AHHHHHHHHH"); 

      System.out.println("Data Object Address: " + currentDataObject.getAddress()); 
      System.out.println("Data Object Type: " + currentDataObject.getType()); 
      System.out.println("Data Object Value: " + currentDataObject.getValue()); 
      System.out.println("Data Object Range: " + currentDataObject.getRange()); 
     } 
     else 
     { 

     } 
    } 
} 
+0

Bean 클래스를 만들고 사용하십시오. ArrayList KOTIOS

+0

방금 ​​추가 한 코드를보고 제안 할 내용을 살펴 보시겠습니까? –

+0

크기가 변경되지 않습니까? 항상 3 부분으로 나뉘어져 있습니다. – KOTIOS

답변

0

:

내가 ArrayList에있는 데이터 객체의 어드레스 값에 대해 문자열 값과 일치하는 시점에있는 코드 바이트), 나는 당신이 Map에 따라 경량 솔루션을 구축 할 수 있다고 생각 :

Map<Byte, ArrayList<Byte>> firstSegments; 
Map<Byte, ArrayList<Byte>> secondSegments; 
Map<Byte, FinalObject> thirdSegments; 

FinalObject 완전 조립 된 데이터 유형 (예, Byte[3]). 이렇게하면 세그먼트별로 효율적인 검색이 가능하지만 검사 할 세그먼트의 "다음"그룹을 찾으려면 배열을 반복해야합니다. 대략 :

그것은 귀하의 질문에서 명확하지,하지만 당신은 배열 중 하나에 해당 Byte 세그먼트 여부를 결정하려하고 반복 걱정하지 않는 경우, 그것은 청소기 될 것
Byte[3] needle = ...; 
Byte firstSeg = ...; 
Byte secondSeg = ...; 
Byte thirdSeg = ...; 

for (Byte b1 : firstSegments.get(firstSeg)) { 
    if (b1.equals(secondSeg)) { 
     for (Byte b2 : secondSegments.get(b1)) { 
      if (b2.equals(thirdSeg)) { 
       return thirdSegments.get(b2); // found a match 
      } 
     } 
    } 
} 

ArrayList<Byte> 대신 Set<Byte>을 사용하는 것이 더 효율적입니다. Set은이 목적으로 빠른 메소드를 제공합니다.

관련 문제