zoukankan      html  css  js  c++  java
  • 集合和泛型 一

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

    不同集合接口的区别:

    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>();
  • 相关阅读:
    HDU1548:A strange lift
    hdu1978_How many ways dfs+记忆化搜索
    HDU1518:Square(DFS)
    HDU ACM 1495 非常可乐(广搜BFS)
    HDU1372:Knight Moves(BFS)
    662_二叉树最大宽度
    590_N叉树的后序遍历
    一直在坚持
    动态链接库DLL的操作顺序
    最近木马的查杀方法/各类杀毒软件的使用
  • 原文地址:https://www.cnblogs.com/TFE-HardView/p/10974876.html
Copyright © 2011-2022 走看看