/*
java中的集合类 实现了 Connection接口
ArrayList这个集合类 java.util.*这个包的类
toArray()方法可以返回一个 Object类型的对象数组
我们部队 ArratList进行泛型规范那么就会警告 但是还是可以运行的
这是因为JDK1.5中引进了泛型,但是你的ArrayList却没有采用,所有会有安全问题,比如你可以把一个别的对象放入al里面去,但是取出来的时候可能就会出错了,所以为了安全,在JDK1.5中引进了泛型这个概念。
你可以改成如下样子就不会产生警告了
*/
import java.util.*;
class ArrayListTest
{
//通过迭代器遍历元素
public static void printElements(Collection c) //传递一个实现类Connection接口的对象
{
Iterator i= c.iterator(); //获得 C这个对象的迭代器
while(i.hasNext()) //如果迭代器的下一个元素存在那么遍历输出
{
System.out.println(i.next()); //返回下一个元素的迭代器
}
}
public static void main(String []args)
{
/*ArrayList a=new ArrayList(); //泛型的概念IDK1.5以后
a.add("ds");
ad.add("dsv");
a.add("one");
a.add("two");
a.add("three");
a.add("four");
for(int n=0;n
System.out.println((String)a.get(n)); 根据索引返回对象
System.out.println(a); //因为这个集合类也是从Object类派生的所以 也有toString方法 也可以直接打印 */
///下面是对 toString方法的重写 toArray 方法返回一个对象数组
ArrayList arrs=new ArrayList();
Point a1=new Point(1,2);
Point a2=new Point(2,2);
Point a3=new Point(4,5);
Point a4=new Point(17,7);
arrs.add(a1);
arrs.add(a2);
arrs.add(a3);
arrs.add(a4);
System.out.println(arrs);
Object []objs=arrs.toArray(); //返回一个对象数组 Object
for(int n=0;n
System.out.println(objs[n]); //输出我们的对象会自动 调用 tiString方法
//Arrays类的asList方法返回List对象 这个对象是一个固定长度的列表 也就是说 我们不能改变List的长度 但是我门可以修改列表的值
//List set方法可以修改指定索引的值
//我们还可以通过 迭代器进行访问 Iterator 接口 一共有三个方法 hasNext判断是是否有下一个元素 remove移走一个元素 但是在List中没有实现这个方法但是支持
//next返回下一个元素迭代器 迭代器的好处使我们可以遍历任意一种集合类对象 因为集合类实现了 Connection接口 List接口是从 Connection接口派生来的
List i=Arrays.asList(arrs);
System.out.println(i);
//下面调用我们的getElements方法通过迭代器返回集合类数据
printElements(arrs); //传递一个集合类对象
}
}
class Point
{
int x,y;
Point(int x,int y)
{
this.x=x;
this.y=y;
}
public String toString()
{
return "x="+x+",y="+y;
}
}