내가 만든 2 차원 배열 인 Flashcard 상자에 카드를 추가하는 방법을 만들어야합니다. 그것은 3 개의 문자열 매개 변수 (단어, 정의, 주제)를 가지고 있습니다. 메서드는 세 개의 String 매개 변수, 즉 새 Flashcard에 대한 정보를 취합니다. 은 카드가 상자에 성공적으로 추가되었는지 여부를 나타내는 부울 값을 반환합니다. 다음과 같은 방법으로 카드를 추가하려고 시도합니다 : 카드에 포함 된 제목이 상자에 있고 카드가 상자에없는 경우 카드를 상자에 추가 할 수 있습니다. 카드를 추가하고 주제에 해당하는 행의 공간이 충분하지 않은 경우 배열을 확장하여 각 주제에 카드를 한 개 더 넣으려면 방이 있어야합니다. 카드가있는 대상이 상자에 없다면 다음 비어있는 행에 카드를 저장해야합니다 (이는 상자에 제목을 추가하는 것과 유사합니다). 빈 행이 없으면 배열을 확장하고 행을 추가해야합니다. 카드가 이미 상자에 있으면 행에 추가 할 수 없습니다. 제발 도와주세요, 나는 이것을 학습 도구로 만들고 있습니다.2D 배열에 슬롯 추가하기
public FlashcardBoxAddCardHelp
{
public boolean addCard(String subject, String word, String definition)
{
Flashcard toAdd = new Flashcard(subject, word, definition);
for(loop through rows)
{
for(loop through columns)
{
if(current card is the same as the card to add)
{
return false;
}
}
}
int subjectIndex = -1;
for(loop through rows)
{
if(currentRow has subject I want)
{
subjectIndex = currentRow;
}
}
if(subject is in the box) //
{
if(there is room in that row)
{
add the card to the first free slot in that row
}else // do this last!
{
// grow the array to add a column
// add the card to the new column for your subjIndex row
// update the counts to keep track of how many columns you have
// and how many columns you have room for
}
}else
{
if(there is room for a new subject)
{
add the card to the first free row
}else // do this last!
{
// grow the array to add a row
// add the card to the first slot in that new row
// update the counts to keep track of how many rows you have
// and how many rows you have room for
}
}
return true;
}
}
당신은 원시 배열이 아닌 ArrayList를 사용하고 싶습니다. ArrayList를 사용하면 "배열 확장 또는 축소"에 대해 걱정할 필요없이 항목을 추가하고 제거 할 수 있습니다. ArrayList 내부적으로 primative 배열을 사용하고 모든이 당신을 위해 작동합니다. – slipperyseal
@SlipperySeal 나는 더 나아가서 초기 주제 선언에 대한지도를 사용하는 것을 제안합니다. map.get ("subject"). get ("word")를 사용하는지도지도는 정의를 반환하고 제목 내에 값을 추가하면 키 - 값 쌍이 추가됩니다. – user2573153
가 동의했습니다. 그리고 이것이 중요하다면 삽입 순서/자연 순서 등으로 값을 저장하는 다양한 종류의 맵이 있습니다 – slipperyseal