• 容器的相关知识


    在学习容器之前,我得先回顾一个知识点。就是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);
      }
    }
  • 相关阅读:
    智能指针之 auto_ptr
    UML在线绘图
    inline使用
    工作随笔—2017-12-12
    链表排序
    转——浅谈如何提高服务器并发处理能力
    使用re开发python计算器
    Linux-centos7下python3 环境设置
    C语言中的static 详细分析
    pycharm import pygame 出现报错:No module named 'pygame'
  • 原文地址:https://www.cnblogs.com/tangdeqiang/p/7695062.html
Copyright © 2020-2023  润新知