java基础之参数和容器

来源:互联网 发布:蝙蝠侠 超人 知乎 编辑:程序博客网 时间:2024/06/11 18:35
1.方法参数:->方法内部需要用到使用时传入的【值】
         * 1)方法参数装的是[装的是值],
         * 2)可以在方法中使用方法参数代替[值].
         * 3)在方法调用的时候传入并确定方法参数里的值.
         *
2.泛型参数:--》在【类,接口,方法】需要用到使用时传入的【数据类型】
         * 1)泛型参数装的是[引用数据类型],
         * 2)可以在类或接口中使用泛型参数代替[类型].
         * 3)在使用类或接口的时候传入并确定泛型参数的[类型].
         *
         *
         * 使用泛型类或接口的语法
         *
         * 1)在类或接口里定义泛型参数->用于接收类型
         * 语法:class|interface  类名|接口名[<泛型参数名1,泛型参数名2...>]{}
         *
         * 2)在类或接口里通过使用泛型参数类代替类型
         * 位置:成员变量,成员方法,构造器-->静态的不能使用
         *
         * 3)在使用类或接口的时候传入类型
         * 语法:类名|接口名<具体的类型1,具体的类型2>
         * 使用的时候-》具体类型会给泛型参数赋值对应的类型
         *
         * 注意点:
         * 1)泛型参数的类型-不能传入基本类型-可以使用对应的包装类。

         * 2)在没有泛型参数通配符的时候,两个带泛型参数的引用类型赋值的时候,泛型参数类型必须一致。

3.容器
         *
         * 数组
         * 1)可以装很多的元素
         * 2)元素绑定下标,通过下标访问元素
         * 3)下标范围:0到len-1
         * 4)长度固定-创建的时候确定长度-不能更改
         * 5)可以存储重复元素
         *
         * list(util包的list)(动态的数组-长度不固定的数组)
         *
         * 1)可以装很多的元素
         * 2)元素绑定下标,通过下标访问元素
         * 3)下标范围:0到size-1
         * 4)长度不固定-创建的时候元素的数量为0,装入几个元素,数量为几。
         * 5)可以存储重复元素
         *
         * list接口:定义list容器通用的api(添加,删除...)
         *
         * list的各种实现类
         *
         * ArrayList:底层通过数组来存储数据,线程不安全,ArrayList读取和设置添加元素的效率比LinkedList高
         * LinkedList:底层通过双向链表来存储数据,LinkedList删除,插入元素的效率比ArrayList高
         * Vector:底层通过数组来存储数据,线程安全
         *
         * ——》各实现类都有空构造-都是创建空元素的list容器
         * ——》各实现类都有toStirng-都可以表示元素的内容

4. list的常用操作的api
     *
a)增 :add(添加内容)--》添加到尾部;   
     插入:add(索引,添加内容)--》添加到指定位置
b)删: remove(索引 || 内容) ;   删除失败-》返回false,成功-》返回true
    删除全部:clear();

5.list(util包的list)(动态的数组-长度不固定的数组)
         *
         * 1)可以装很多的元素(下标和元素对应关系)
         *  下标不能重复
         *  元素可以重复
         * 2)元素绑定下标,通过下标访问元素
         * 3)下标范围:0到size-1
         * 4)长度不固定-创建的时候元素的数量为0,装入几个元素,数量为几。
         *
         * map
         *
         * 1)可以装很多的键值对(键和值的对应关系)
         * 键:对应list 下标   ,键不能重复
         * 值:对应list 元素   ,值可以重复
         *
         * 2)值绑定键,通过键访问值
         * 3)键的范围:任何类型,任何值
         * 4)长度不固定-创建的时候(键值对)的数量为0,装入几个元素,数量为几。
         *
         * Map接口:定义map容器通用的api
         *
         * map的各实现类
         * hashmap:底层通过单向链表加数组实现存储数据。线程不安全,hashmap性能通常比treemap好。
         * treemap:底层通过红黑树实现存储数据。treemap增加了功能-自动对加入的键值对按键进行升序排列。
         * hashtable:底层通过单向链表加数组实现存储数据。线程安全
         * Properteis:一种与Properteis格式的数据进行交互的map容器-如Properteis文件..

6.map的常用api
     *
 a)添加 修改 数据:     map.put(key, value); key
      
      1)不存在键-就是添加
      2)已存在键-就是修改
 b)查找值value:    map.get(键key)    
 c) 删除数据:  remove(Object key);
 删除全部:clear();
 d )获得总个数(键值对):size();   
boolean containsKey(Object key)
          如果此映射包含对于指定键的映射关系,则返回 true。
 boolean containsValue(Object value)
          如果此映射将一个或多个键映射到指定值,则返回 true。

7. 遍历map的内容
         *
         * 1)遍历map所有的值
         *     values() 把map所有的值装入collection容器
         *
         * 2)遍历map所有的键和值
         *  keySet() 把map所有的键装入set容器
         *  entrySet()把map所有的键值对装入set容器

8.容器
         *
         * 数组
         * 1)可以装很多的元素
         * 2)元素绑定下标,通过下标访问元素
         * 3)下标范围:0到len-1
         * 4)长度固定-创建的时候确定长度-不能更改
         * 5)可以存储重复元素
         *
         * list(util包的list)(动态的数组-长度不固定的数组)
         *
         * 1)可以装很多的元素
         * 2)元素绑定下标,通过下标访问元素
         * 3)下标有序,下标范围:0到size-1
         * 4)长度不固定-创建的时候元素的数量为0,装入几个元素,数量为几。
         * 5)可以存储重复元素
         *
         * set
         * 1)可以装很多的元素
         * 2)元素不绑定下标
         * 3)找到迭代器随机访问元素
         * 4)长度不固定-创建的时候元素的数量为0,装入几个元素,数量为几。
         * 5)不能存储重复元素
         *
         * list和set主要区别
         * 1)list:a)元素有下标,下标有序,b)可以存储重复元素
         * 2)set:a)元素没有下标,无序 b)不能存储重复元素
         *
         * set接口:定义了set容器的api
         *
         * set的实现类
         *
         * hashset:底层通过hashmap存储数据,hashset通常性能比 treeset好。
         * treeset:底层通过treemap存储数据,treeset新增了功能-》自动对加入元素进行升序排列。(通常不使用-使用的时候通过对应的api完成)
         *
         *
         * collection:一种容器,可以存储很多元素,定义容器操作的基本api
         * list:一种容器,可以存储很多元素,元素绑定下标,定义跟下标相关的新api
         * set:一种容器,可以存储很多元素,元素不能重复。
         *
9.set的常用api:
     *
  a)增:add();  添加失败-》返回false,成功-》返回true
  b)删除:boolean remove(Object o);删除失败-》返回false,成功-》返回true
    删除全部:clear();
  c)获得总个数:size();   
  e)判断元素是否存在:contains(Object o)

10. list的3种遍历
         * a)普通for     -》利用下标
         * b)增强for    ——》利用Iterable
         * c)迭代器   -》利用iterator
         *
         * set的2种遍历
         *
         * b)增强for    ——》利用Iterable
         *
         * c)迭代器   -》利用iterator
         * 使用步骤
         * 1)找到容器的迭代器(管理者)it
         *   Iterator it=  容器.iterator();
         * 2)通过管理者it遍历容器所有的元素
         * 取元素的步骤
         * a)有没有下一个元素-true
         *   hasNext()
         * b)拿到下一个元素
         *   next()
         * a)有没有下一个元素-true
         * b)拿到下一个元素
         * ...
         * a)有没有下一个元素-false
         *
         *
         * 增强for和迭代器选择-》增强for-语法简单

原创粉丝点击