자바에서 클래스 필드 비교 하려고 하는데 질문이요
조회수 797회
public class Number {
int[] array0 = new int[]{2,7,19,25,29,36,16};
int[] array1 = new int[]{2,10,12,31,33,42,32};
int[] array2 = new int[]{3,8,19,27,30,41,12};
int[] array3 = new int[]{2,6,7,12,19,45,38};
int[] array4 = new int[]{2,10,11,19,35,39,29};
int[] array5 = new int[]{5,6,13,16,27,28,9};
int[] array6 = new int[]{12,15,16,20,24,30,38};
int[] array7 = new int[]{4,6,15,25,26,33,40};
}
public class getnum {
public static void main(String[] args) {
// TODO Auto-generated method stub
Number Num = new Number();
int[] lonum = new int[Num.array0.length];
System.arraycopy( Num.array0, 0, lonum, 0, Num.array0.length );
int[] temp = new int[]{1,2,3,4,5,6};
Arrays.equals(lotnum, temp);
}
제가 하고 싶은것은 Number클래스의 필드와 temp의 값을 비교 하고 싶은데 필드 하나하나를 비교 해야 하는건가요? for문으로 해결할수 있는지 궁금합니다. 사실 700개를 비교할 예정인데 개념이 안잡히네요 초보입니다
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
java8 부터는 stream 과 lambda 가 추가되어 있어서 편리하게 처리할 수 있습니다.
public class Number { public List<Integer[]> numbersContainer = Stream.of(new Integer[]{2,7,19,25,29,36,16}, new Integer[]{2,5,12,31,33,42,32}).collect(Collectors.toList()); } Integer[] temp = new Integer[]{1,2,3,4,5,6}; Number number = new Number(); List<List<Integer>> result = number.numbersContainer .stream() .map(arr -> Arrays.asList(arr) .stream() .filter(Arrays.asList(temp)::contains) .collect(Collectors.toList())) .collect(Collectors.toList()); [[2], [2, 5]]
댓글 입력