泛型
作用:让代码更加灵活 定义位置:类: 语法: 访问权限修饰符 class 类名{ 访问权限修饰符 X 属性名; 访问权限修饰符 X 方法名(形参列表){ } } 方法: 语法: 访问权限修饰符 返回值类型 方法名(形参列表){ } 实际:泛型就是一种数据类型的占位符
集合
作用:临时存储数据 与数组的区别: 数组存储的长度是不可变的 集合长度可变
集合体系
Collection 方法: size();//获取集合中的数据个数 isEmpty();//判断集合是否存储数据 iterator();//获取迭代器 toArray();//将集合转换为数组 add(T t);//添加一个数据 addAll(Collectionc);//添加一组数据 remove(T t)://删除一个数据 remove(Collection c);//删除一组数据 clear();//清空集合 子接口: List 特点:有序的(存入顺序与取出顺序一致,称之为有序) 方法: boolean addAll(int index, Collection extends E> c);//插入多个数据 get(int index); //获取指定位置的数据 set(int index ,E element);//修改某个位置的数据为 add(int index ,E element);//指定位置添加单个数据 remove(int index);//删除指定位置的数据 子类: ArrayList 数据结构:数组结构 优点:查询速度快 缺点:增删速度慢 LinkList 数据结构:(单)链表 优点:增删的速度快 缺点:查询速度慢 Vector 最古老的ArrayList 与ArrayList的区别是线程是安全的 Set 特点:无序的 方法:没有特有方法.都是继承的父类 子类: HashSet 数据结构:红黑树(二叉树)+哈希表 eg:[4,1,8,11,2,3,0] 4 1 8 0 2 11 3 左边走小,右边走大 TreeSet 数据结构: 注意点:存储的数据要么拥有比较性,要么给treeset指定比较器 方案1: 1.让数据拥有比较性 2.存储的数据所在的类实现comparable接口 3.重写compareTo方法 public int compareTo(Person o) { if (this==o) { return 0; } int nameNum=name.compareTo(o.getName()); int sexNum=sex.compareTo(o.getSex()); int ageNum=age-o.getAge(); return ageNum+sexNum+nameNum; } 方案2:给treeset指定比较器 创建treeset时传入comparator对象,用匿名内部类 LinkdHashSet 数据结构:红黑树+哈希表+链表
ArrayList
//创建集合对象 ArrayListarrayList = new ArrayList (); //添加单个数据 arrayList.add(10); //在指定下标位置添加数据 arrayList.add(1,11); System.out.println(arrayList); ArrayList arrayList2 = new ArrayList (); arrayList2.add(11); arrayList2.add(3); //添加多个数据 arrayList.addAll(arrayList2); System.out.println(arrayList); System.out.println(arrayList.size()); //查询指定下标位置的数据 System.out.println(arrayList.indexOf(1)); //删除指定下标位置的数据 arrayList.remove(0); System.out.println(arrayList); //删除多个数据 arrayList.removeAll(arrayList2); System.out.println(arrayList); //清空集合 arrayList.clear(); System.out.println(arrayList); //使用迭代器.第一步创建迭代器 Iterator iterator = arrayList.iterator(); //2.循环判断后边是否有数据 while (iterator.hasNext()) { //移动游标获取数据 Integer next = iterator.next(); System.out.println(next); }
LinkedHashSet



