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

目录
相关文章
|
1月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
87 4
|
1月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
161 5
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
143 1
|
1月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
203 1
|
1月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
148 1
|
1月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
160 1
|
1月前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
78 7
|
1月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
263 5
|
2月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
238 100
|
2月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
267 101