我对Java很新,而不是编程背景。我正在做一个课程,我被困在一块片上,我希望在这里提出一个问题是合适的。这个问题要求创建一个方法,该方法将一个整数数组作为一个参数,并返回一个包含该数组元素的有序集。我不包括代码,因为我不想要答案,但我想知道一个线索。这让我疯了!
你的期待
JC
答案 0 :(得分:5)
好的,让我们一起来看看。跟我来:
问题是要创建一个方法 将整数数组作为一个整数 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 第一个中工作,然后将所有内容放在一起。
欢迎来到编程的神奇世界:)
答案 1 :(得分:1)
提示:
int
作为参数的元素?int
类型的数组?对于SortedSet
:
List
。提示:寻找asList()
方法List
的所有元素添加到SortedSet
。提示:addAll()
。编辑: Aaargh!没有在问题中看到SortedSet
答案 2 :(得分:1)
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;
}
}
}
答案 3 :(得分:0)
网上有很多教程,请查看example,这不完全是你想要的,但可能会指向正确的方向。
祝你好运!
答案 4 :(得分:0)
只要数组中仍存在整数,您就可以创建一个新数组并迭代给定的数组。您可以搜索最高或最低的int并将其放入新数组中,并将其从给定数组中删除。只要给定数组中有项目,您就可以执行此操作。如果给定数组为空,则返回新数组。
我认为这就是你的意思。
我没有正确阅读,抱歉。
您可以创建新的SortedSet,有关详细信息,请参阅此处:SortedSet, 并使用add或addAll将项添加到此sortedSet。有关Set
的更多信息,请参阅答案 5 :(得分:0)
你应该记住一些要点:
SortedSet是一个接口,因此您必须找到合适的实现(提示:API包含“所有已知的实现类”)
“int”是本机数据类型,没有对象。因此,您需要将它们封装在包装器中(请参阅Integer.valueOf()),然后才能在Set中使用它们。
其余的应该是对源数组的简单迭代,并将每个元素放到新的Set中。
HTH