• Java集合类的总结


      Java语言的java.until包中提供了一些集合类,这些集合类又被称为容器。说到集合就会想到数组,集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本数据类型,集合从来存放对象的引用。常用的集合有List集合,Map集合与Set集合,其中List与Set实现了Collection接口,他们的继承关系如下图:

    Map接口的常用方法:

      Map接口提供了将键 映射到 值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。Map的常用方法如下:

           

    方法 返回值 功能描述
    put(key,value) Object 向集合中添加指定的key与value的映射关系
    get(key) Object 如果存在指定的键对象,则返回该对象对应的值,否则返回null
    containsKey(key) boolean 如果此映射包含指定键的映射关系,则返回true
    containsValue(value) boolean 如果此映射将一个或多个键映射到指定值,则返回true
    keySet() Set 返回该集合中的所有键对象组成的Set集合
    values() Collection 返回该集合中所有值对象形成的Collection集合
    size() int 返回该集合中所有对象的个数
    remove(key)   清除该集合中指定键对象的内容
    clear()   清除该集合中所有对象的内容

    写法:

    Map方法是不能直接被new出来的,所以想要使用Map方法,就要采用Map中的HashMap。写法为:

    Map<String,String> list = new HashMap<String,String>();

    下面就举个例子:

    public static void main(String[] args) {
            Map<String,String> list = new HashMap<String,String>();
            list.put("zs", "张三家的狗狗");
            list.put("lisi","李四家的小狗");
            
            String d = list.get("lisi");
            
            System.out.println(d);
            
            Set keys = list.keySet();
            Iterator it = keys.iterator();
            while(it.hasNext()){
                Object obj = it.next();
                //System.out.println(obj);
                Object v = list.get(obj);
                System.out.println(v);
            }
            
            
            String s = (String)list.get("zs");
            System.out.println(s);
            System.out.println(list.containsKey("zs"));
            System.out.println(list.containsValue("hello world"));
            
            System.out.println(list.size());
            list.remove("zs");
            System.out.println(list.size());
            list.clear();
            System.out.println(list.size());
        }

    输出结果为:

    李四家的小狗
    李四家的小狗
    张三家的狗狗
    张三家的狗狗
    true
    false
    2
    1
    0

    Collection接口中List的常用方法:

      List接口继承了Collection接口,因此包含Collection中的所有方法。但是他还有一些适合于自身的常用方法。如下:

      

    方法 返回值 功能描述
    add(int index,Object obj) void 用来向集合中的指定索引位置添加对象,集合的索引位置从0开始
    get(int index) Object 用来获取指定索引位置的对象
    contains() boolean 如果列表包含指定的元素,则返回true
    indexOf(Object obj) int 该方法返回列表中对象第一次出现的索引位置,如果集合中不包含该元素,则返回-1
    lastIndexOf(Object obj) int 该方法返回列表中对象最后一次出现的索引位置,如果集合中不包含该元素,则返回-1
    set(int index,e element) Object 用指定元素替换列表中指定位置的元素,返回以前在指定位置的元素
    subList(int formIndex,int toIndex) LIst 获取从索引formIndex到toIndex之间的元素对象
    size() int 返回该集合中所有对象的个数
    remove(int index) Object 用来移除集合中指定索引位置的对象
    clear()   清除该集合中所有对象的内容
    iterator   返回按适当顺序在列表的元素上进行迭代的迭代器。

      此时我们需要注意的是:List接口中适合于自身的方法都与索引有关。

    写法:

      同样的道理,list也是不能被直接new出来的,所以我们也要使用list的ArrayList。写法如下:

    List<String> list = new ArrayList<String>();

      下面举个例子:

    public static void main(String[] args){
            List<String> list = new ArrayList<String>();
            list.add("helll world");
            list.add("good morning");
            list.add("merry christmas");
            list.add("happy new year");
            
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i));
            }
            
        }

    输出结果为:

    helll world
    good morning
    merry christmas
    happy new year

    这里是采用索引号来进行遍历输出所有内容的,下面再一个例子来了解一下迭代器iterator及其他内容的使用:

    public static void main(String[] args){
            List<String> list = new ArrayList<String>();
            list.add("吕布");
            list.add("赵云");
            list.add("典韦");
            list.add("关羽");
            list.add("张飞");
            
            list.set(4, "马超");
            
            Iterator<String> it = list.iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
            
            System.out.println(list.size());
            Object obj ="吕布";
            list.remove(obj);
            System.out.println(list);
            
            
            list.remove("赵云");
            
            System.out.println(list.size());
            
            System.out.println(list.get(2));
            list.clear();
            System.out.println(list);
    }

    输出结果为:

    吕布
    赵云
    典韦
    关羽
    马超
    5
    [赵云, 典韦, 关羽, 马超]
    3
    马超
    []

    Collection中Set接口的常用方法:

      Set集合由Set接口和Set接口的实现类组成。Set接口继承了Collection接口,因此包含了Collection接口的所有方法。如下:

    方法 返回值 功能描述
    add(Object obj) boolean 如果此Set集合中尚未存在指定的元素,则添加此元素
    get(int index) Object 用来获取指定索引位置的对象
    removeAll(Collection c) boolean 在Set集合中移除包含在指定Collection中的元素
    size() int 返回该集合中所有对象的个数
    remove(Object obj) boolean 将指定的参数对象移除集合
    clear()   清除该集合中所有对象的内容
    iterator   返回按适当顺序在列表的元素上进行迭代的迭代器。

      由于Set集合中不允许存在重复值,因此可以使用Set集合中的addAll()方法,将Collection集合添加到Set集合中并除掉重复值。

      来个例子:

    public static void main(String[] args){
            List<String> list = new ArrayList<String>();
            list.add("apple");
            list.add("banana");
            list.add("pear");
            list.add("apple");
            Set<String> set =new HashSet<String>();
            set.addAll(list);
            Iterator<String> it = set.iterator();
            while(it.hasNext()){
                System.out.println(it.next()+"	");
            }
        }

    输出结果为:

    banana    
    apple    
    pear    

      

      

      

      

  • 相关阅读:
    57. Insert Interval
    56. Merge Intervals
    55. Jump Game
    54. Spiral Matrix
    52. N-Queens II
    More Effective C++ 条款2 最好使用C++转型操作符
    More Effective C++ 条款1 仔细区别pointers和references
    Python_内置函数之max
    python_超级基础
    python_format格式化输出、while else、逻辑运算符、编码初识
  • 原文地址:https://www.cnblogs.com/claricre/p/6237619.html
Copyright © 2020-2023  润新知