java和python对比学习之java数组和python列表

学习参考来自:http://www.runoob.com

我们对python中列表的理解是
是一种基本的数据结构,结构中的每个元素都会有一个下标来与之对应,其实下标为0。
对列表的操作包括通过索引下标查找展示,通过切片来获取指定部分列表数据,通过加,乘来扩展列表数据,而类别中存储的数据类型可以不相同。
如:
list1 = ['python2', 'python3', 7, 2]
list2 = [1, 2, 3, 4, 5 ]
print语句来输出list1[0],list[1:3]
列表的初始化,可以直接使用列表中要存储的数据来初始化,如上list1,list2,或者初始化一个空列表然后通过修改列表来添加想要存储的值。
如:
list=[];
list.append('a')
list.append('b')
其中list添加有序,按序输出。print list的结果为:['a', 'b']
对于list中不再使用的数据可以通过del 命令来删除,从而来节省内存空间
删除完整列表命令:del list,也可以通过下标来删除指定位置的值del list[3]
list中存储数据的多少,可以通过lens(list)来查看,输出存储元素个数。对于上述list会输出2
python对于list的操作灵活性超乎我们的想象。我们可以通过简单的‘+’命令来合并两个list.如list1+list2
但是该命令只是形成新的list,而不会改变旧list中的值。
list的复制,可以通过‘*’命令来完成。list*2则会复制list.
判读list中是否包含元素通过in命令来完成,如果返回是True说明包含,否则不包含。'a' in list 结果为True
for x in list : print x #遍历输出。
min(list):返回list中最小的元素。
max(list):返回list中最大的元素。
cmp(list1,list2)比较两个列表的元素
想要统计某一元素在list中出现的次数:list.count('a') 返回1,没有则返回0
当然我们也可以通过使用extend,insert,pop,remove来修改列表元素。
通过reverse()来反向列表中元素。
以上参考来自:http://www.runoob.com/python/python-lists.html
好了到这里基本上对列表这个python中用的比较长见的数据结构就聊的差不多了。接下来我们看和他比较像的
java语言中的数组。


如果你体验了python的灵活性,你就能够知道java的条框限制。当然每门语言都有自己的特色么。
java中的Array是不可变的,定长的,初始化的时候必须定义长度,之后在其生命周期内对其大小不可修改,从其定义中可以看出它是final的,即是不可变的。因为java是强对象类型的。所以对于Array存储的数据类型基本上都是相同类型的。当然如果定义Object数组,则可以和python类似存储任意对象,因为Object对象是所有对象的父类,所以你可以在对应数组中存放一切对象。通过下标来获取对应存放的元素。修改对应存放的元素。可以通过for循环遍历输出元素。而对于数组的扩展,复制则只能通过自己来实现。其中有Arrays工具类在java.util.Arrays,可以通过fill方法给赋值,使用sort()对数组中的元素进行排序。通过binarySearch查询指定元素是否在数组中存在。
因为数组的限制条件比较多,一旦创建不可变,扩展不易,所以在java语言中数组适用的场景相对来说没有集合广更广泛。
int[] myArray = {1, 2, 3, 5};
System.out.print(myArray[0])输出1
myArray[0]=3 #将0下标的值从1改为3
myArray.length获取数组中元素的个数。
当然java还支持多维数组。
int a[][] = new int[2][3];
日常开发中用的比较。
对于java提供的工具类中Arrays中已经提供的方法,主要包括:将数组转为列表集合的aslist方法
binarySearch()查找方法,copyOf()的复制方法,返回的是新的数组,旧数组因为是final类型的,不可变。
equals()判断是否相等方法。hashCode()方法返回哈希值。parallelSort()并发排序,提高排序性能。Stream()将数组转为流来处理。



猜你喜欢

转载自blog.csdn.net/wu1226419614/article/details/80870120