首先我们要了解到的是,Java的动态数组ArrayList存放的还是同一种类型(引用类型,不能是基本类型,若要用基本类型的话,需要包装),但是python中的list显得强大的多,他存放的是任意数据类型,因为python的所有基本类型都是用类实现的,所以无所谓基本类型和引用类型,在list看来,都是可以被容纳对象而已。举个简单的小例子:
Java版:
//在这我定义了一个类
public class Dog {
private String breed;
private String name;
private int age;
public Dog(String n,int a) {
this.name=n;
this.age=a;
}
public void bark(){
System.out.println("汪汪汪"+"my name is "+this.name+" and my age:"+this.age);
}
}
//我想要建立一个动态数组,添加三个元素,然后每个元素都调用一下bark方法
ArrayList<Dog> myDogs=new ArrayList<Dog>();
Dog d1=new Dog("wangcai", 1),d2=new Dog("xiaohei", 2),d3= new Dog("haba", 0);
myDogs.add(d1);
myDogs.add(d2);
myDogs.add(d3);
Object [] my_dogs=myDogs.toArray();//此处生成一个数组,包含myDogs的所有元素,
for(int i=0;i<my_dogs.length;i++) {
((Dog) my_dogs[i]).bark();
}
Python版:
class Dog(): def introduce(self): print('My name is {0} and my age is {1}'.format(self.name,self.age)) p1,p2,p3=Dog('xiaoming',1),Dog('xiaomei',1.2),Dog('xiaolan',2) l=[p1,p2,p3] for i in l: i.introduce() 总之python具有很强的简洁性,list在功能上比ArrayList要强大一些