zoukankan      html  css  js  c++  java
  • 容器的相关知识

    在学习容器之前,我得先回顾一个知识点。就是java1.5新增的for循环,这个循环简化了传统的for循环。但是也有一些缺点,所以特意拿出来说一下,具体见下面的图:

    下面就开始介绍一下容器的相关知识,容器这一章,主要记住1136,对于这个数字可能你还不太理解,但是在看了下面的图了你就很清楚了,所以先看下面的图

    大家只要记住这个数字并且理解。我相信你的容器这一章就差不多了。所以一定要记住。对于其中set和list和map。这几个要有大体的了解,所以对于这几个容器接口,来看一下下面的图就理解了

    只要理解了上面的图。我相信你应该对这三类容器接口有一个大体的了解,具体的知识我们来看下面的讲解。首先来看一下set吧

    对于set这个接口你只要大体掌握这里面的方法就差不多能理解大概了,对于其余的方法可以去查询API文档。下面我们来看一下list

    对于list也是如此,我们简单来看一下list的例子。举例如下:

    只要大体知道意思就算你了解并且入门了,至于应用还需要以后在实践过程中不断学习。下面我们来看一下关于map的知识

    如果map你也大体了解掌握了。说明你对容器这一章你也基本是入门了。剩下的就是要不断的练习。对于这几种容器,我们还会联系到数据结构的知识,所以在以后的学习中会遇到一些增删改查的知识,所以我们要记住这几个数据结构的特点,以便我们利用的时候能够提高效率。特点请看下面

    知道特点后我们再来了解一下泛型的知识。泛型也是java1.5过后的新增的知识,对于泛型来说,我的理解就是简化了程序,使程序达到了强壮性。并且提高了程序的可读性。为什么这么说,因为泛型在写程序之前就将需要的类型确定了,所以在后面的程序中减少了转换等等。来看一下知识点

    所以使用泛型得到了很多好处。我们再来看一个泛型的两个例子,就基本理解泛型了。

    import java.util.*;
    public class TestArgsWords {
      //private static final Integer ONE = new Integer(1);
      private static final int ONE = 1;
      public static void main(String args[]) {  
          //在这里没有使用泛型
        Map m = new HashMap();
        for (int i = 0; i < args.length; i++) {
          //Integer freq = (Integer) m.get(args[i]);
           //在这里没有使用泛型所以要进行强制转换,如果在前面使用泛型,在这里就会自动打包和解包
          int freq = (Integer) m.get(args[i]) == null ? 0 : (Integer) m.get(args[i]);
          //m.put(args[i],(freq == null? ONE : new Integer(freq.intValue() + 1)));
          m.put(args[i], freq==0 ? ONE : freq + 1);
        }
        System.out.println
            (m.size() + " distinct words detected:");
        System.out.println(m);
      }
    }

    再来看一个实用了泛型的程序

    import java.util.*;
    public class TestArgsWords2 {
      private static final int ONE = 1;
      public static void main(String args[]) {    
          //在这里使用了泛型,所以在后面不需要强制转换了。这就是泛型带来的好处
        Map<String, Integer> m = new HashMap<String, Integer>();
        for (int i = 0; i < args.length; i++) {
          
          if(!m.containsKey(args[i])) { 
              //不需要强制转换,并且也不需要指明类型,
              //因为在前面已经指明了类型,是String类型的,所以不需要了
              m.put(args[i], ONE);
          }
          else {  
              //不需要强制转换,前面已经指明是Integer类型了,所以这里不需要了
              int freq = m.get(args[i]);
              m.put(args[i], freq + 1);
          }
          
        }
        System.out.println
            (m.size() + " distinct words detected:");
        System.out.println(m);
      }
    }
  • 相关阅读:
    eclipse如何与git 配合工作。
    git托管代码(二)
    PPC2003 安装 CFNET 3.5成功
    我的Window Mobile WCF 項目 第三篇 WM窗体设计
    我的Window Mobile WCF 項目 第一篇Mobile开发和WinForm开发的区别
    我的Window Mobile WCF 項目 第七天
    我的Window Mobile WCF 項目 第二篇 WindowsMobile访问WCF
    WCF 用vs2010 和 vs2008的简单对比测试
    vs2010beta1 和 搜狗输入法 冲突,按下 Ctrl 键就报错,重装搜狗解决
    我的Window Mobile WCF 項目 第六天 (二)
  • 原文地址:https://www.cnblogs.com/tangdeqiang/p/7695062.html
Copyright © 2011-2022 走看看