常见的集合有:ArrayList(链表),HashMap(散列表),HashSet(关键字不重复的散列表)
泛型:使用集合时通过泛型来限定能添加到集合的元素类型(List<E> lists = new ArrayList(),该集合中只能添加E类型的元素)需要添加多种元素时,构造多种元素的一个父类EF,以EF为泛类的类型,即可添加其子类到集合中
遍历方法:1-迭代器:Iterator;2-增强for
1 package cn.chlinjiayi.collection; /** 2 * @author lizhihao@iot-cas.com 3 * @version V1.0 4 * @description: TODO 5 * @creat 2019-12-24-14:25 6 */ 7 import cn.chlinjiayi.hero.Hero; 8 import cn.chlinjiayi.item.*; 9 import java.util.ArrayList; 10 import java.util.HashMap; 11 import java.util.Iterator; 12 import java.util.List; 13 14 public class Collection { 15 public static void main(String[] args) { 16 17 //--- 18 //常见的集合 19 //--- 20 21 //ArrayList 22 /*无泛型的集合,任意的类型都可添加*/ 23 List heros = new ArrayList(); 24 heros.add(new Hero("kk")); 25 //存放人物的也可放武器 26 heros.add(new Weapon("无尽")); 27 28 Hero h1 = (Hero) heros.get(0); 29 //转类型却会出错,武器人物不可互转 30 // Hero h2 = (Hero) heros.get(1); 31 //输出集合的结果 32 // System.out.println(h1.getName()); 33 34 //带泛型的集合 35 List<Hero> herosTest= new ArrayList<>(); 36 herosTest.add(new Hero("sss")); 37 //不可执行,规定了集合类型,里面只可以是Hero 38 // herosTest.add(new Weapon("春哥")); 39 40 List<Weapon> weaponsTest = new ArrayList<>(); 41 weaponsTest.add(new Weapon("穿甲弓")); 42 43 //同时添加两种,通过父类添加 44 List<property> characterList = new ArrayList<>(); 45 characterList.add(new Hero("kkk")); 46 characterList.add(new Weapon("多兰")); 47 48 //HashMap(键值对形式,键是唯一的,用来配对应的元素值,哈希函数散列表的应用,查找速度比ArrayList快) 49 HashMap<String,String> map = new HashMap<>(); 50 map.put("adc","物理英雄"); 51 map.put("ap","魔法英雄"); 52 System.out.println(map.get("ap")); 53 54 //HashSet(不允许有重复值,无序,封装了HashMap,散列表关键字不允许重复) 55 56 //--- 57 //集合遍历方式 58 //---- 59 //迭代器Iterator 60 List<Hero> herosIt = new ArrayList(); 61 herosIt.add(new Hero("kk1")); 62 herosIt.add(new Hero("kk2")); 63 herosIt.add(new Hero("kk3")); 64 Iterator<Hero> iterator = herosIt.iterator(); 65 //用while判断迭代器内是否还有元素 66 while (iterator.hasNext()) 67 { 68 Hero h = iterator.next(); 69 System.out.println(h.getName()); 70 } 71 //增强for循环 72 for(Hero hero : herosIt){ 73 System.out.println(hero.getName()); 74 } 75 76 } 77 }
原文:https://www.cnblogs.com/KSea/p/12092568.html