
1Collection是接口,是容器类的总接口。像那些子接口:set,Queue,List等都继承了这个接口,像实现类:HashSet、ArrayList等都实现了对应的Set、List等接口。
要获取里面的元素很简单,在方法体中,像你代码中的“RosterEntry entry”对象“entry”就是。
2for(:){……}这个是个JDK15的增强for循环也叫for-each是为了方便遍历数组和collection的由于collection都实现了Iterable(可迭代的)接口,所以可以用for-each来遍历容器类,示例一:
List<String> list=new ArrayList<String>();
listadd("a");
listadd("b");
listadd("c");
for (String str : list) {
Systemoutprintln(str);
}
另外我最常用的就是遍历数组,示例二
int[] arr = new int[3];
arr[0] = 1;
arr[1] =2;
arr[2] = 3;
for(int i : arr){
Systemoutprintln(i);
}
Extjs 数组定义使用ExtArray内置函数。
extjs40 ExtArray 函数方法大全:
ExtonReady(function(){
var array = ['1','2','3','4','1','6','7'];
ExtArrayclean(array); //['1','2','3','4','6','7'];
ExtArrayclone(array); // 克隆数组
ExtArraycontains(array,'1'); //返回true 检查数组内是否包含指定元素
var array2 = ['1','2','3','4','5','6'];
ExtArraydifference(array,array2); //返回 存在于 array中而不存在array2中的元素 ['','7']
ExtArrayevery(array,function(str,index,array){ //遍历数组 第二个参数执行回调函数 (当前元素,当前索引,当前数组(array)) 指定作用域 返回false 立即返回
//alert(str);
return true;
});
ExtArrayfilter(array,function(str,index,array){ //遍历数组 第二个参数执行回调函数 (当前元素,当前索引,当前数组(array)) 指定作用域 返回值: 返回true的元素组成新数组
//alert(str);
return true;
});
var array3 = ['1','2','3','4',['1','2','3'],'6','7'];
ExtArrayflatten(array3); //返回值:将多维数组 平铺成一维数组
ExtArrayforEach(array,function(str,index,array){ //单纯的遍历数组
//alert(str);
});
ExtArrayfrom(array,true); //转换给定值为数组 如果为undefined 或 null 则返回空数组 本身为数组返回数组 可迭代返回数组拷贝 单值返回值包含该值的数组
ExtArrayinclude(array,'100'); //向array末尾插入100 前提是array中不存在为100的值
ExtArrayindexOf(array,'100',0); //在数组内寻找指定值 第三个参数为起始位置 返回值:所在位置
alert(ExtArrayintersect([array,array2])); //合并多个数组 数组元素唯一
ExtArraymap(array,function(str,index,array){ //根据返回值组成数组
return str;
});
ExtArraymax(array,function(s1,s2){ //返回数组中最大值 使用比较函数时返回值为负数时 小 0为相等 正数为大
return 0;
});
ExtArraymean([1,2,3,4,5]); //返回平均值
ExtArraymin(array,function(s1,s2){ //返回数组中最小值 可使用比较函数
return 0;
});
var array4 = [{'a1':'a1'},{'a1':'a2'},{'a3':'a3'}];
ExtArraypluck(array4,'a1'); //在数组json数据中查找键为a1的值返回数组 (不改变数组大小)
ExtArrayremove(array,'1'); //删除数组中指定元素 注意:只删除一项
ExtArraysome(array,function(s1,s2){ //遍历数组 返回true立即返回
return false;
});
var array5=['s','a','z','c'];
ExtArraysort(array5); //排序数组 默认以字符排序 可选排序函数
var array6=[1,2,3,4,5];
ExtArraysum(array6); //求和
ExtArraytoArray(array6,2,4); //转换任何可迭代的值为数组 参数 1 iterable 2 start 3 end
ExtArraymerge(array,array6); //组合数组
ExtArrayunique(array,array6); //组合数组 merge的别名
ExtArrayunique(array); //获取具有唯一元素的新数组
})
operatoritemgetter函数 operator模块提供itemgetter函数用于获取象哪些维数据参数些序号(即需要获取数据象序号)面看例 a = [一,二,三] >>> b=operatoritemgetter(一) //定义函数b获取象第一域值 >>> b(a) 二 >>> b=operatoritemgetter(一,0) //定义函数b获取象第一域第0值 >>> b(a) (二, 一) 要注意operatoritemgetter函数获取值定义函数通该函数作用象才能获取值 sorted函数 Python内置排序函数sortedlist或者iterator进行排序官中国文档见:中国docspythonorg/二/library/functionshtmlhighlight=sorted#sorted该函数原型: sorted(iterable[, cmp[, key[, reverse]]]) 参数解释: (一)iterable指定要排序list或者iterable用说; (二)cmp函数指定排序进行比较函数指定函数或者lambda函数: students类象list没员三域用sorted进行比较自定cmp函数例要通比较第三数据员排序代码写: students = [('john', 'A', 一5), ('jane', 'B', 一二), ('dave', 'B', 一0)] sorted(students, key=lambda student : student[二]) (三)key函数指定取待排序元素哪项进行排序函数用面例说明代码: sorted(students, key=lambda student : student[二]) key指定lambda函数功能元素student第三域(即:student[二])sorted排序students所元素第三域进行排序 面operatoritemgetter函数用该函数实现例要通student第三域排序写: sorted(students, key=operatoritemgetter(二)) sorted函数进行级排序例要根据第二域第三域进行排序写: sorted(students, key=operatoritemgetter(一,二)) 即先跟句第二域排序再根据第三域排序 (四)reverse参数用说bool变量表示升序降序排列默认false(升序排列)定义True按降序排
定义:zip([iterable,
])
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些
tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用号 *** 作符,可以将list
unzip(解压),看下面的例子就明白了:
1
2
3
4
5
6
7
8
9
>>>
a
=
[1,2,3]
>>>
b
=
[4,5,6]
>>>
c
=
[4,5,6,7,8]
>>>
zipped
=
zip(a,b)
[(1,
4),
(2,
5),
(3,
6)]
>>>
zip(a,c)
[(1,
4),
(2,
5),
(3,
6)]
>>>
zip(zipped)
[(1,
2,
3),
(4,
5,
6)]
对于这个并不是很常用函数,下面举几个例子说明它的用法:
二维矩阵变换(矩阵的行列互换)
比如我们有一个由列表描述的二维矩阵
a
=
[[1,
2,
3],
[4,
5,
6],
[7,
8,
9]]
通过python列表推导的方法,我们也能轻易完成这个任务
1
2
[
[row[col]
for
row
in
a]
for
col
in
range(len(a[0]))]
[[1,
4,
7],
[2,
5,
8],
[3,
6,
9]]
另外一种让人困惑的方法就是利用zip函数:
1
2
3
4
5
>>>
a
=
[[1,
2,
3],
[4,
5,
6],
[7,
8,
9]]
>>>
zip(a)
[(1,
4,
7),
(2,
5,
8),
(3,
6,
9)]
>>>
map(list,zip(a))
[[1,
4,
7],
[2,
5,
8],
[3,
6,
9]]
这种方法速度更快但也更难以理解,将list看成tuple解压,恰好得到我们“行列互换”的效果,再通过对每个元素应用list()函数,将tuple转换为list
以指定概率获取元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
>>>
import
random
>>>
def
random_pick(seq,probabilities):
x
=
randomuniform(0,
1)
cumulative_probability
=
00
for
item,
item_probability
in
zip(seq,
probabilities):
cumulative_probability
+=
item_probability
if
x
<
cumulative_probability:
break
return
item
>>>
for
i
in
range(15):
random_pick("abc",[01,03,06])
'c'
'b'
'c'
'c'
'a'
'b'
'c'
'c'
'c'
'a'
'b'
'b'
'c'
'a'
'c'
这个函数有个限制,指定概率的列表必须和元素一一对应,而且和为1,否则这个函数可能不能像预想的那样工作。
稍微解释下,先利用randomuniform()函数生成一个0-1之间的随机数并复制给x,利用zip()函数将元素和他对应的概率打包成tuple,然后将每个元素的概率进行叠加,直到和大于x终止循环
这样,”a”被选中的概率就是x取值位于0-01的概率,同理”b”为01-04,”c”为04-10,假设x是在0-1之间平均取值的,显然我们的目的已经达到
Java中遍历Map对象的4种方法:
1、通过MapentrySet遍历key和value,在for-each循环中使用entries来遍历推荐,尤其是容量大时。
2、通过MapkeySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值。
3、如果只需要map中的键或者值,你可以通过MapkeySet或Mapvalues来实现遍历,而不是用entrySet。在for-each循环中遍历keys或values。
4、通过MapentrySet使用iterator遍历key和value。
扩展资料:
关于JAVA的遍历知识补充:
1、list和set集合都实现了Iterable接口,所以他们的实现类可以使用迭代器遍历,map集合未实现该接口,若要使用迭代器循环遍历,需要借助set集合。
2、使用EntrySet 遍历,效率更高。
参考资料:
百度百科--Map(映射)
以上就是关于java 里 出现这样的for循环 是 for(A:B){ }全部的内容,包括:java 里 出现这样的for循环 是 for(A:B){ }、Extjs 数组怎么自定义,并且赋值、python中lambda和itemgetter的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)