INT

2017-04-14 5 views
1

안녕과 각 배열 문자열을 비교INT

var에 배열 목록

List<Integer> var = new ArrayList<>(); 
에게 있습니다
str = StringUtils.collectionToCommaDelimitedString(var); 

이 목록에있는 내용은 다음을 참조하십시오 :

for (int hour=0; hour<24; hour++) { 
if (my conditions is ok) {   
      var.add(hour);} 

그리고 var = [3,10,18] 그리고 결과적으로 str = [3,10,18]을 포함하고 있습니다. 만약이 메소드가이 문자열을 0 - 23 시간으로 비교하고 equals 각 또는 0

@Override 
public Map<String, Object> my() { 
    List<Integer> test = new ArrayList<>(); 
    for (int hour=0; hour<23; hour++) { 
     if (.......... conditions TO DO){  
      test.add(1); 
     } 
     else { 
      test.add(0); 
     } 

    } } 

내가 수행 할 이때 검사 결과의 예 :

테스트 = [0, 0, 0, 1, 0, 0, 0, 0, 1, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]

+1

나는 모두 당신의 방법을 이름을 변경하여 시작합니다. 필드와 이름이 같은 메서드를 사용하면 필드의 값을 반환하는 하나의 메서드와 필드에 * 새로운 * 값을 할당하는 다른 메서드 (둘 다 같은 것으로 함)는 매우 나쁜 생각입니다 . 다음으로, 첫 번째 코드가 그 질문의 다른 요소와 어떤 관계가 있는지 명확하지 않습니다. [mcve]를 입력하고 가능한 한 명확하게 질문하십시오. –

+0

정수의 문자열 표현을 일부 문자열과 비교하는 것은 그리 큰 문제가 아닙니다. 더 흥미로운 것은 "왜 그런 식으로 비교해야합니까?"라는 질문입니다. 나는 당신이 숫자 값을 바로 얻었을 때, 그것들을 인덱스로 사용하여 목록을 채우는 것이 더 쉽지는 않겠지 만, 각각을 가능한 모든 순열과 비교하지 않는 것이 좋을까요? –

+0

또한 반환 값은 무엇입니까? '지도 '는 어디에 있습니까? –

답변

0

를 반복하는 경우가 확인 java.util.Listcontains(Object o) 방법을 사용할 수 있습니다3210은 List<Integer> var에 포함되어 다음 hourObject하지만 원시적 int하지

if (var.contains(hour)){  

하는 것으로. 오토 박싱은 Integer으로 자동 변환합니다.

방법은 이렇게 될 것이다 :

@Override 
public Map<String, Object> my() { 
    List<Integer> test = new ArrayList<>(); 
    for (int hour=0; hour<23; hour++) { 
     if (var.contains(hour)){  
      test.add(1); 
     } 
     else { 
      test.add(0); 
     } 

    } 
} 
+0

고맙습니다. –