Java集合遍历实现方法及泛型通配

作者:haoduohaoduo鱼 时间:2022-02-26 13:55:54 

集合定义

集合,集合是java中提供的一种容器,可以用来存储多个数据。

特点:数组的长度是固定的。集合的长度是可变的。集合中存储的元素必须是引用类型数据‘

普通for遍历:


//案例一
ArrayList<Person> arr=new ArrayList<Person>();
   arr.add(new Person("张三",19));
   arr.add(new Person("小红帽",20));
   arr.add(new Person("小红帽",23));
   for(int i=0;i<arr.size();i++){
     System.out.println(arr.get(i));
   }

增强for循环遍历:


案例二    
 Collection<Integer> arr=new ArrayList<Integer>();
   arr.add(789);
   arr.add(456);
   arr.add(123);
   //增强for循环
   /*for(元素的数据类型 变量 : Collection集合or数组){
   }*/
   for(Integer i:arr){
     System.out.println(i);
   }

迭代器遍历:


//案例三
//1,创建集合对象。
Collection<String> coll = new ArrayList<String>();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");

//2.获取容器的迭代器对象。通过iterator方法。
Iterator it = coll.iterator();

//3,使用具体的迭代器对象获取集合中的元素。参阅迭代器的方法
while(it.hasNext()){
 System.out.println(it.next());
}

Collection接口的基本方法

Collection接口是集合中的顶层接口,那么它中定义的所有功能子类都可以使用

Java集合遍历实现方法及泛型通配

创建集合的格式:

方式1:Collection<元素类型> 变量名 = new ArrayList<元素类型>();

方式2:Collection 变量名 = new ArrayList();

集合元素的向下转型


Collection coll = new ArrayList();
coll.add("abc");
coll.add("aabbcc");
coll.add(1);
Iterator it = coll.iterator();
while (it.hasNext()) {
 //由于元素被存放进集合后全部被提升为Object类型
//当需要使用子类对象特有方法时,需要向下转型
 String str = (String) it.next();
 System.out.println(str.length());
}

泛型和通配符

类定义格式:修饰符 class 类名<代表泛型的变量> { }

接口定义格式:修饰符 interface接口名<代表泛型的变量> { }

限定泛型的下限:


//? extends Person 限定泛型的上限
 //? super Person   限定泛型的下限
 public static void get(Collection<? extends Person> c){
   Iterator<?> it=c.iterator();
   while(it.hasNext()){
     //向下转型
     Object obj=it.next();
     Person p=(Person)obj;
     System.out.println(p.getName());
   }

来源:https://www.cnblogs.com/haoduoyu0512/p/13297885.html

标签:Java,集合,遍历,泛型,通配
0
投稿

猜你喜欢

  • SpringBoot中默认缓存实现方案的示例代码

    2023-11-24 05:50:30
  • Java的Swing编程中使用SwingWorker线程模式及顶层容器

    2021-09-09 08:45:06
  • 利用JavaMail发送HTML模板邮件

    2023-01-21 02:25:32
  • 详谈Java中net.sf.json包关于JSON与对象互转的坑

    2023-03-02 12:38:31
  • springboot docker jenkins 自动化部署并上传镜像的步骤详解

    2023-07-28 01:54:38
  • Java经典面试题最全汇总208道(二)

    2023-11-09 08:13:39
  • Java单例模式下的MongoDB数据库操作工具类

    2023-11-20 12:55:01
  • Java反射之通过反射获取一个对象的方法信息(实例代码)

    2021-08-07 15:14:46
  • Android实现带动画效果的可点击展开TextView

    2023-08-06 05:42:08
  • Spring如何使用注解的方式创建bean

    2022-01-29 03:45:49
  • Flutter开发Widgets 之 PageView使用示例

    2023-06-24 13:23:34
  • SpringMvc微信支付回调示例代码

    2023-01-24 08:00:03
  • Java 生产者/消费者问题实例详解

    2023-02-26 01:23:36
  • c#处理3种json数据的实例

    2023-06-23 19:12:47
  • Java虚拟机执行引擎知识总结

    2023-06-05 17:34:31
  • Spring Security基本原理详解

    2022-12-24 15:57:54
  • 浅谈java多态的实现主要体现在哪些方面

    2023-08-17 07:41:32
  • Java使用ThreadLocal实现当前登录信息的存取功能

    2023-06-06 12:00:34
  • Android基于TextView实现跑马灯效果

    2023-07-25 06:32:45
  • java实现静默加载Class示例代码

    2023-12-18 22:06:52
  • asp之家 软件编程 m.aspxhome.com