集合:用来存放对象的容器
不同集合接口的区别:
Collection 接口存储一组 不唯一,无序的对象
List 接口存储一组不唯一,有序(插入顺序)的对象
Set 接口存储一组唯一,无序的对象
Map接口存储一组键值对象,提供key到value的映射
List集合接口:
①ArrayList和LinkedList是List接口的两个具体实现类,
②ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
③LinkedList采用链表存储方式,插入、删除元素时效率比较高
ArrayList常用方法:
ArrayList的创建及部分方法的调用:
1 public class ArrayListOne { 2 public static void main(String[] args){ 3 ArrayList t=new ArrayList(); 4 ArrayList c=new ArrayList(); 5 c.add(2); 6 c.add(23); 7 Object a="aa"; 8 int b=2; 9 t.add(2); 10 t.add("哈哈"); 11 //判断两个集合的元素是否都一样 12 boolean f=t.containsAll(c); 13 //删除一个元素前,会先拿到该元素 14 //a=t.remove(1); 15 System.out.println(f); 16 //System.out.println("a的值是:"+a); 17 System.out.println("------------------"); 18 //迭代器 19 //Iterator it=t.iterator(); 20 ListIterator it=t.listIterator(); 21 //判断是否存在下一个元素 22 while(it.hasNext()){ 23 //打印下一个元素 24 System.out.println(it.next()+" "); 25 } 26 System.out.println("-------------"); 27 //判断是否存在前一个元素 28 while(it.hasPrevious()) { 29 //打印该元素 30 System.out.println(it.previous()); 31 } 32 } 33 34 35 }
LinkedList常用方法:
LinkedList集合的创建,复制,方法调用和集合的遍历方法:
1 public class LinkedListOne { 2 public static void main(String[] args){ 3 LinkedList lt=new LinkedList(); 4 lt.add("哈哈"); 5 lt.addFirst("我是第一个!"); 6 lt.add(3); 7 lt.addLast("我是最后一个!"); 8 System.out.println(lt); 9 //第一种:循环遍历集合 10 for(int i=0;i<lt.size();i++){ 11 Object[] o=lt.toArray(); 12 System.out.println(o[i]); 13 } 14 //第二种:利用增强型的for来遍历集合 15 for(Object o:lt){ 16 System.out.println(o); 17 } 18 } 19 20 }
泛型:
将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性
泛型的使用方式,分别为:泛型类、泛型接口、泛型方法
泛型的使用:
1 //泛型类 2 public class FanXing <E>{ 3 //泛型变量 4 private E fname; 5 private E age; 6 7 //泛型方法 8 public <T>T Test(T num){ 9 10 return num; 11 12 } 13 14 public E getFname() { 15 return fname; 16 } 17 public void setFname(E fname) { 18 this.fname = fname; 19 } 20 public E getAge() { 21 return age; 22 } 23 public void setAge(E age) { 24 this.age = age; 25 } 26 27 }
注:若有泛型变量,那么该类必须是泛型类;有泛型方法的类,可以不是泛型类;泛型方法可与泛型类不一致。
泛型集合:
List<String> list=new ArrayList<String>();