且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

java中的集合类 以及 迭代器

更新时间:2022-08-13 08:14:14

 

/*
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<String> a=new  ArrayList<String>();  //泛型的概念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<a.size();n++)
  System.out.println((String)a.get(n));   根据索引返回对象  
  System.out.println(a);  //因为这个集合类也是从Object类派生的所以 也有toString方法 也可以直接打印  */
  
  
  
  ///下面是对 toString方法的重写 toArray 方法返回一个对象数组  
  ArrayList<Point> arrs=new ArrayList<Point>();
  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<objs.length;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;
 }
 
 
 
}