集合和泛型 一

集合:用来存放对象的容器

不同集合接口的区别:

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>();
原文地址:https://www.cnblogs.com/TFE-HardView/p/10974876.html