2012-12-18 3 views
-5

나는 전문가는 아니며 초급자입니다. 그래서 나는 당신이 나를 위해 약간의 코드를 작성해 주길 부탁한다.루핑 및 읽기 목록이있는 자바

java에 4 개의 ArrayList ->error_list_A, list_A, error_list_B, list_B이 있습니다. 이 목록에 개체를 추가하는 독립적으로 실행되는 별도의 프로그램이 있습니다.

1 분 동안 또는 비어있을 때까지 읽은 다음 다음 단계로 넘어갈 때까지 별도의 프로그램을 작성해야합니다. 이 프로그램은 항상 실행 모드에서이 목록을 듣고 처리해야합니다.

뭔가 같은 ..

  1. 읽기 error_list_A 및 해당 요소를 처리합니다.

    요소는 다음 요소를 읽고이를 제거하면 모든 처리 또는 1 분 시간 제한이 list_A

  2. 읽기 list_A로 이동 요소를 처리 한 후 도달 할 때까지 어떤 요소는 다음 list_A

    로 이동하지 않는 경우 .

    요소는 다음 요소를 읽고이를 제거하면 모든 처리 또는 1 분 시간 제한이 error_list_B

  3. 읽기 error_list_B로 이동 요소를 처리 한 후 도달 할 때까지 어떤 요소는 다음 error_list_B

    로 이동하지 않는 경우 .

    요소는 다음 요소를 읽고이를 제거하면 모든 처리 또는 1 분 시간 제한이

  4. list_B을 읽을 list_B로 이동 요소를 처리 한 후 도달 할 때까지 어떤 요소는 다음 list_B

    로 이동하지 않는 경우 . 모든 처리 또는 1 분 제한 시간이 갈 다음에 도달 할 때까지 어떤 요소는 다음 요소는 다음 요소를 읽고이를 제거 할 경우

    (새로운 요소가 error_list_A에서이 있는지 다시 루프) error_list_A로 이동하지 않는 경우

    error_list_A

  5. 1.

당신이 게시 할 수 단계를 다시 반복 (새로운 요소가 error_list_A에있는 경우 다시 루프를 확인합니다) 몇 가지 예제 코드, 제발?

나는 그 부분을 읽고 처리하여 그 부분을 무시할 수 있음을 알고 있습니다. 목록을 전환하고 루프에서 읽기를 유지하는 코드 만 있으면됩니다.

숙제가 아닙니다. 실제 프로그램에서는 웹 응용 프로그램의 오류를 저장하는 디렉토리를 읽고 구현해야합니다. 그러니 숙제를 돕고 있다고 말하면서 그것을 무시하지 마십시오.

나는 이런 식으로 시도했다.

public class ListReader { 

    private static List<Object> list_A, error_list_A, list_B, error_list_B; // Initialize list by reading them. 

    public static void main(String[] args) { 
     while (true) { 
      if (error_list_A != null && error_list_A.size() > 0) { 
       processList(error_list_A); 
      } else if (list_A != null && list_A.size() > 0) { 
       processList(list_A); 
      } else if (list_B != null && list_B.size() > 0) { 
       processList(list_B); 
      } else if (error_list_B != null && error_list_B.size() > 0) { 
       processList(error_list_B); 
      } 
     } 
    } 

    private static void processList(List<Object> list){ 
     // Code for when empty or time limit reached then return 
    } 

} 

하지만 말이되지 않는 것 같습니다.

감사합니다.

+7

순수 코드 작성 요청이 스택 오버플로에 관한 주제와 관련이 없습니다. 두려워요. – assylias

+0

먼저 무언가를 시도한 다음 우리가 직면 한 실제 문제를 보여주십시오. 네가 네가 노력을 보여 준다면 나는 너를 실망시키지 않을 것이라고 확신한다. – Smit

+0

순수한 코드가 필요하지 않습니다. 목록간에 전환하고 루프에서 계속 읽는 코드. – user1913599

답변

3

코드를 직접 작성하는 것이 좋습니다. 그런 식으로 만 언어를 배우게됩니다. 컴퓨터 과학에서 가장 어려운 문제는 문제에 대한 최상의 알고리즘을 찾는 것입니다. 손에 알고리즘이 있다면 구현이 쉽습니다.

알고리즘을 코딩하십시오. 오류나 문제가있는 경우 여기에 게시하십시오.

갱신

PROCESSLIST 기능에
if (error_list_A != null && error_list_A.size() > 0) { 
       processList(error_list_A); 
      } 
if (list_A != null && list_A.size() > 0) { 
       processList(list_A); 
      } 
if (list_B != null && list_B.size() > 0) { 
       processList(list_B); 
      } 
if (error_list_B != null && error_list_B.size() > 0) { 
       processList(error_list_B); 
      } 

, 당신은 당신이 함수에서 반환 할 수 있습니다 일분을 초과 timer.If을 확인, 당신의 타이머를 시작하고 각 요소를 처리 list.Before에서 각 요소 처리를 시작, 그렇지 않으면 계속하십시오. 목록 끝까지 올 때까지 계속하십시오. 아직 1 분을 넘지 않으면 돌아 오십시오.

+0

이 문제의 샘플 코드를 제안 해 주시겠습니까? 정확한 코드는 필요 없지만 단지 힌트는 필요 없습니다. – user1913599

+0

1 분 대기 타이머 사용은 연속 while 루프보다 매우 유용합니다. 그러나 당신은 또한'System.currentTimeMillis()'를 사용하고 정확한 시간 카운터를 생성 할 수 있지만 큰 hedache – Smit