数组中的Java整数

时间:2015-09-16 21:38:41

标签: java arrays

好吧所以我试图将我自己的排序算法复制到java中,因为Arrays是我最薄弱的环节,正如他们所说,练习是完美的。我有它需要的所有逻辑,但我正在努力编码,因为我仍然相对较新的Java(任何好的教程将不胜感激)。

1)所以我要做的第一件事是创建一个任意长度的用户输入数组,其中包含整数。 我的代码基于我之前做的字符串列表函数,除了代码不从String传递给整数。

IDE最不喜欢的行是当我尝试转换时:

<div ...
  ng-repeat="childController in childControllers" 
  ng-controller="childController"
  ...
>

List<String> numList = new ArrayList<String>();

这可能是我无法解决的语法错误

2)我想写一些在我看来会起作用的东西:

List<int> numList = new ArrayList<int>();

正如你可以看到逻辑以及代码对我来说似乎是什么,然而它仍然不起作用,并且由于我有限的java知识,我无法理解为什么。

2 个答案:

答案 0 :(得分:4)

1)当涉及泛型时,您需要使用而不是原始类型。因此,Java为每种基本类型引入了精神分裂症类。 $array = array(...); //your values here function output($item, $key) { echo $key . ' =>' . $item; } array_walk($array, 'output'); 的基本类型为int,因此您必须使用:

Integer

2)你的第二个问题归结为运算符重载,这个概念尚未得到Java的支持。然而,this answer中描述的项目可以帮助您定义运算符并将其编译为相应的Java文件。

您需要使用List<T>#getList<T>#set来操纵List<Integer> numList = new ArrayList<Integer>(); ArrayList个对象。此外,List没有List<T>但是List<T>#size方法来检查大小。

将您的算法翻译为.length的{​​{1}}将如下所示:

List<Integer>

但它仍然会失败,因为您无法初始化numList(无论是数组还是for(int i = 0; i <= numList.size(); i++) { int number1 = numList.get(i); int number2 = numList.get(i + 1); int sortedArray[]; if (number1 >= number2) { sortedArray[i] = number2; numList.set(i + 1,number1); } else { sortedArray[i] = number1; numList.set(i + 1,number2); } } )。此外,由于sortedArray循环中的List<T>(使用<=而不是for进行修复),它超出范围。

3)您的概念看起来有点像冒泡排序bubble sort

您不需要<:您只需要交换项目。试着想一想如何交换物品。话虽如此,使用数组效率可能更高一些,而且还有更快的算法,如 MergeSort QuickSort HeapSort

答案 1 :(得分:0)

您可以使用此类实施。这也可以在您创建对象数组时起作用:

Int op[] = new Int[int n];
    java.util.Arrays.fill(op, new Int());
    for(int i=0;i < n; i++){
        op[i].get();
        op[i].processFile();
    }