import java.lang.IndexOutOfBoundsException
public class findMax10 {
public findMax10(int dat[],int length)
{
try
{
int temp = dat[length - 1] //尝试读取length指定的数组最后一位
}
catch(IndexOutOfBoundsException e1)
{
System.out.println("参数不足1\n")
}
int x[] = new int[10]//最大数ID号记录
int y[] = new int[10]//最大数数值记录,两个数组元素一一对应
for(int i = 0i < 10i ++)
{
y[i] = 0x80000000 //将所有最大数记录初始化为最小值
}
for(int i = 0i < lengthi ++) //扫描所有数据
{
for(int j = 0j < 10j ++)
{
if(dat[i] >= y[j])//匹配记录,发现第一个不大于自己的记录
{
for(int k = 9k > jk --)//将该记录位置后面的记录往后移动,尾部的随之被删除
{
x[k] = x[k - 1]
y[k] = y[k - 1]
}
x[j] = i //将该记录填入相应位置,如此往复,记录会被从大到小排序。
y[j] = dat[i]
break //跳出小循环
}
}
}
int temp = length<10 ? length : 10 //如果length满10,就打印前10个,否则打印length个。
System.out.printf("最大的%d个数为:\n",temp)
for(int i = 0i < tempi ++)
System.out.printf("%d\t号的 %d,\n",x[i],y[i])
System.out.println("----------------\n")
}
public static void main(String[] args)
{
int dat0[] = {77,121,32,81,81,32,110,117,109,98,101,114,32,105,115,32,56,50,49,55,54,52,57,57,48,0}
findMax10 findmax10 = new findMax10(dat0,26)
}
}
js获取数组中的一部分元素,有2种方法:slice和filter函数,下面分别介绍。
sliceslice的定义和用法如下,用于截取数组的一段
执行
var arr = [1,2,3,4,5]
arr.slice(1,4)
这2行代码,可以看到截取了1到4下标的代码
filterfilter则用于过滤数组中的一部分元素,剩下的元素就是需要的那部分元素。
现在尝试下面代码,可以将一个数字数组中的偶数过滤掉,只留下奇数。
var arr = [1,2,3,4,5]
arr.filter(e=>e%2==0)
function searchKeys(needle, haystack){var result = [] for (i in haystack){if (haystack[i] == needle){result.push(i)}}return result} var array = [1,2,1,3,1,4,1,5,1,1]var val = 1var result = searchKeys(val, array)alert(result)