2012-09-12 7 views
0
value1 = 0 and value2 = 0 with weight 0 

value1 = 1 and value2 = 6 with weight 5 

value1 = 2 and value2 = 4 with weight 4 

value1 = 3 and value2 = 3 with weight 2 

value1 = 5 and value2 = 2 with weight 4 

value1 = 5 and value2 = 7 with weight 6 

value1 = 8 and value2 = 5 with weight 6 

내가 새로운 배열 (값 1, 값과 체중에 대해 서로 다른 배열)로이 출력을 저장하고 얼마나 당신은 포함하는 빈을 만들 수 있습니다 그들에게새로운 배열에 알고리즘의 출력을 저장하는 방법

+0

너무 힘들지 않습니다. 너 뭐 해봤 니? [this]와 같은 것을 읽었습니까? (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) – madth3

+5

문제가 무엇인지 명확히하십시오. 3 개의 배열을 만드는 방법을 모르십니까? 이전 값을 어딘가에 유지하면서 배열을 업데이트하려고합니까? "출력"이란 무엇입니까? 방금 3 세트의 값을 설명했습니다. 입력은 무엇이며 출력은 무엇입니까? – Jay

+0

그 결과는 내가 이전 알고리즘에서 얻은 결과를 비교할 수 있도록 새 배열에 저장하려고합니다. 그래서 다른 하나가 완전히 지배하지 않는 valu1과 value2의 값을 얻습니다. –

답변

0

비교 이

public class AlgoItem { 
    private Integer value1; 
    private Integer value2; 
    private Integer weight; 
    // Setter and getter 
} 

그리고 그것을 저장하는 컬렉션을 사용하여 같은 값 1, 값 및 무게 (당신이 컬렉션의 구현을위한 HashSet의 또는 ArrayList를 사용할 수 있습니다)

그래서 당신의 방법은 반환됩니다 AlgoItem

0

의 컬렉션 당신은 2 차원 배열

 int[][] values = new int[][] {{ 0, 0, 0}, {1, 6, 5}, {2,4,4}}; 

첫 번째 배열이 3 개 값을 포함하는 배열의 배열을 사용할 수 있습니다.

이것은 간단하고 더러운 방법입니다. 3 가지 가치관을 모두 가지고있는 객체를 만든 다음 그 목록을 만드는 것이 좋습니다.

0

아직 어떤 문제인지 잘 모르겠습니다. 아마도 당신이 시도하지 못한 것을 우리에게 보여줘야 할 것입니다.

int[] value1=new int[7]; 
int[] value2=new int[7]; 
int[] weight=new int[7]; 

value1[0]=0 
value2[0]=0; 
weight[0]=0; 

value1[1]=1; 
value2[1]=6; 
weight[1]=5; 

value1[2]=2; 
value2[2]=4; 
weight[2]=4; 

... etc ... 

찾고 계신가요?

+0

으로 작업하기가 더 쉬운 것으로 변경합니다. 다음과 같이 배열을 저장합니다. int val1 [] = {0, 1, 3, 3, 5, 5, 8}; int val2 [] = {0, 6, 4, 3, 2, 7, 5}; 그리고 지금은 val2만큼의 VAL1의 값과 값을 비교하려면,이 알고리즘을 시도했지만 잘 작동하지 않습니다에 대한 (INT의 J = 0; J <= LEN1; J ++)에 대한 \t \t { \t \t \t (INT의 K = 0; K <= LEN2) ++ 케이 \t \t \t { \t \t \t \t 경우 (VAL1 [J]> = VAL1 [J + 1] &&을 val2 [K]> = val2만큼 [K + 1]) \t \t \t \t { \t \t \t \t \t System.out.println ("Value1 ="+ val1 [j] + "Value2 ="+ val2 [k]); \t \t \t \t} \t \t \t} \t \t} –

+0

당신이 당신의 예제 코드을 val2의 모든 항목에 VAL1의 모든 항목, 즉 7 × 7 = 49 일치 ... VAL2 val1을 비교하려고하는 말을 일치하지만 val1을 val2와 비교하지 않고 각 val1 항목을 다음 val1 항목과 비교하고 각 val2 항목을 다음 val2 항목과 비교합니다.그런데 len1이 val1의 항목 수이면 len1까지 j를 실행하지만 val1의 마지막 항목은 len1-1이므로이 방법은 작동하지 않습니다. 일반적으로 배열을 통한 루프는 (int j = 0; j Jay

+0

... 마지막 항목보다 먼저 항목에서 중지해야합니다. 그렇지 않으면 마지막 항목과 마지막 항목을 비교하려고 시도하게됩니다. , 그리고 물론 "마지막 이후 엔트리"가 없습니다. 하지만 실제로 여기에있는 문제는 val1과 val2를 비교하기를 원할 때 무엇을 의미합니까? val1 [0] == val2 [0], val1 [1] == val2 [1] 등을 확인하고 싶습니까? 아니면 비교가 더 복잡합니까? – Jay

관련 문제