我對Java很新穎,而不是從編程背景。我正在做一個課程,並被困在一塊,我希望這是適合在這裏問一個問題)。該問題要求創建一個將整數數組作爲argumetn並返回包含該數組元素的有序集的方法。我不包括代碼,因爲我不想要答案,但我想要一個線索。這讓我瘋狂!帶有返回數組參數的類方法
此致在期待
JC
我對Java很新穎,而不是從編程背景。我正在做一個課程,並被困在一塊,我希望這是適合在這裏問一個問題)。該問題要求創建一個將整數數組作爲argumetn並返回包含該數組元素的有序集的方法。我不包括代碼,因爲我不想要答案,但我想要一個線索。這讓我瘋狂!帶有返回數組參數的類方法
此致在期待
JC
有很多在網上的教程,看看這個example,它不正是你想要的,但可能你指出正確的方向。
祝你好運!
您可以創建一個新的數組,只要數組中仍有整數,就可以遍歷給定的數組。您可以搜索最高或最低的int並將其放入新數組中,並將其從給定數組中移除。只要給定數組中有項目,就可以這樣做。如果給定數組爲空,則返回新數組。
我以爲這就是你的意思。
我沒看完,抱歉。
您可以創建一個新的SortedSet,在這裏看到的更多信息:SortedSet, 和使用添加或addAll將項目添加到這個SortedSet的。更多信息請參見有關Set
除了要求返回一個SortedSet而不是一個數組的問題;) – Paolo
@Paolo你在哪裏是對的。我沒有正確閱讀,對不起。我添加了一些關於SortedSets和Set的鏈接。 – JordyOnrust
提示:
int
作爲參數的元素?int
類型的數組?對於SortedSet
:
List
。提示:查找asList()
方法List
的所有元素添加到SortedSet
。提示:addAll()
。編輯: Aaargh!沒有在問題中看到SortedSet
import org.junit.Test;
import java.util.Arrays;
import java.util.SortedSet;
import java.util.TreeSet;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
/**
* @version $Id$
*/
public class MainTest {
public SortedSet sortIntegers(Integer[] ints) {
return new TreeSet(Arrays.asList(ints));
}
@Test
public void it_should_return_a_sorted_set() throws Exception {
assertThat(sortIntegers(new Integer[]{5, 7, 1, 6}), is(instanceOf(SortedSet.class)));
}
@Test
public void it_should_return_four_elements() throws Exception {
assertThat(sortIntegers(new Integer[]{5, 7, 1, 6}).size(), is(4));
}
@Test
public void it_should_return_in_the_right_order() throws Exception {
Integer previous = 0;
for (Integer current : sortIntegers(new Integer[]{5, 7, 1, 6})) {
assertThat(current , is(greaterThan(previous)));
previous = current;
}
}
}
好的,讓我們一起來看看。跟我來:
的問題問到創建方法 是採用整數數組作爲 argumetn並返回一個有序集合 包含該 數組的元素。
我們這裏有三個步驟:
我在這裏做的是把主要問題,並將其分爲更小,更容易接近的子-問題。它被稱爲divide et impera。如果你從事編程生涯,你會經常遇到這種方法。
main() { a[] = { "one", "two", "three"}; f(a); } f(arr[]) { for (int i = 0 ; i < arr.length ; i++) print(arr[i]); }
你跟我那麼遠?但願如此。
現在,
f()
看起來是這樣的:f(arr[]) { /* insert here your sorting method */ }
一旦做到這一點,你需要這個數組傳回的主要功能。現在,如果你是從一個函數傳回一個值,你會做這樣的事情:
int g() { int i = 0; i++; return i; }
,因爲他們希望你返回一個數組,它會是這樣的:
int[] h() { /* initialize the array */ int[] j = { 1, 2, 3 }; /* your code goes here */ return j; }
在這一點上,你有你需要的所有元素你問的問題。只要讓他們在java 的第一個工作,然後把所有東西放在一起。
歡迎來到魔幻世界編程:)的
有一些點,你應該記住:
SortedSet的是一個接口,所以你必須找到一個合適的實現(提示:API包含「所有已知實現類「)
」int「是本地數據類型,沒有對象。因此,您需要將它們封裝在包裝中(請參閱Integer.valueOf()),然後才能在Set中使用它們。
其餘的應該是對源數組的簡單迭代,並將每個元素放到新的Set中。
HTH
我從來沒有通過StackOverflow或任何其他網站將成爲一個「做我的作業」類網站。因此,我將這個問題標記爲要求版主注意。 – Riduidel
這不是一個「爲我做作業」的問題。他/她要求提供一個提示,而不是回答。 – Hardcoded
我覺得這很有趣。從答案來看,這個問題並沒有被認爲是挑釁......這不是火箭科學,但在高級問題中質量並不總是更高。 –