java中的集合类 以及 迭代器

简介:   /* java中的集合类   实现了 Connection接口 ArrayList这个集合类  java.util.*这个包的类  toArray()方法可以返回一个 Object类型的对象数组     我们部队 ArratList进行泛型规范那么就会警告 但是还是可以运行的 这是因为JDK1.5中引进了泛型,但是你的ArrayList却没有采用,所有会有安全问题,比如你可以把一个别的对象放入al里面去,但是取出来的时候可能就会出错了,所以为了安全,在JDK1.5中引进了泛型这个概念。
 

/*
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;
 }
 
 
 
}

目录
相关文章
|
5天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
1天前
|
人工智能 安全 Java
Java8 - LocalDateTime时间日期类使用详解
Java8 - LocalDateTime时间日期类使用详解
|
2天前
|
安全 Java 程序员
|
2天前
|
存储 Java C++
Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列
Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列
16 0
|
3天前
|
Java
Java Class类
Java Class类
8 0
|
9天前
|
Java 编译器
Java Character 类
4月更文挑战第13天
|
10天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
14天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
14天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
18 0
|
14天前
|
存储 Java 编译器
Java集合丛林:深入了解集合框架的秘密
Java集合丛林:深入了解集合框架的秘密
16 0
Java集合丛林:深入了解集合框架的秘密