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接口是集合中的顶层接口,那么它中定义的所有功能子类都可以使用
创建集合的格式:
方式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,集合,遍历,泛型,通配
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SpringBoot中默认缓存实现方案的示例代码
2023-11-24 05:50:30
![](https://img.aspxhome.com/file/2023/7/59937_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/0/65180_0s.jpg)
springboot docker jenkins 自动化部署并上传镜像的步骤详解
2023-07-28 01:54:38
![](https://img.aspxhome.com/file/2023/5/57915_0s.png)
Java经典面试题最全汇总208道(二)
2023-11-09 08:13:39
![](https://img.aspxhome.com/file/2023/7/59067_0s.jpg)
Java单例模式下的MongoDB数据库操作工具类
2023-11-20 12:55:01
Java反射之通过反射获取一个对象的方法信息(实例代码)
2021-08-07 15:14:46
![](https://img.aspxhome.com/file/2023/2/66532_0s.jpg)
Android实现带动画效果的可点击展开TextView
2023-08-06 05:42:08
![](https://img.aspxhome.com/file/2023/9/85989_0s.png)
Spring如何使用注解的方式创建bean
2022-01-29 03:45:49
Flutter开发Widgets 之 PageView使用示例
2023-06-24 13:23:34
![](https://img.aspxhome.com/file/2023/1/120091_0s.jpg)
SpringMvc微信支付回调示例代码
2023-01-24 08:00:03
Java 生产者/消费者问题实例详解
2023-02-26 01:23:36
![](https://img.aspxhome.com/file/2023/3/62053_0s.gif)
c#处理3种json数据的实例
2023-06-23 19:12:47
Java虚拟机执行引擎知识总结
2023-06-05 17:34:31
Spring Security基本原理详解
2022-12-24 15:57:54
![](https://img.aspxhome.com/file/2023/9/62459_0s.jpg)
浅谈java多态的实现主要体现在哪些方面
2023-08-17 07:41:32
Java使用ThreadLocal实现当前登录信息的存取功能
2023-06-06 12:00:34
![](https://img.aspxhome.com/file/2023/0/59950_0s.png)
Android基于TextView实现跑马灯效果
2023-07-25 06:32:45
java实现静默加载Class示例代码
2023-12-18 22:06:52