zoukankan      html  css  js  c++  java
  • Java集合

    集合与数组

    数组:(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。

    集合:(只能存储对象,对象类型可以不一样)的长度可变(动态的数组),可在多数情况下使用。

    集合的分类:

    在java集合中,集合分了两个大的接口,分别为:Collection接口和Map接口。

    Collection接口又分为:List接口和Set接口。分别由不同的子类来实现。

    集合的方法:

    我先创建一个ArrayList对象,用ArrayList来说明一下集合里面的基本方法:

    Collection coll = new ArrayList();

    (1)、size()方法:返回集合中元素个数

    System.out.println(coll.size());

    (2)、add(Object obj):向集合中添加一个元素(注:现在我没有使用泛型,所以不同类型的数据都能添加到集合中)

    coll.add("AA");
    coll.add(new Date());
    coll.add(123);
    coll.add('B');

    (3)、addAll(Collection coll):将形参coll中包含的所有元素添加到当前集合中

    Collection coll1 = Arrays.asList(1,2,3);
    coll.addAll(coll1);

    这里是将coll1集合里面的元素全部添加到coll集合当中。

    (4)、isEmpty():判断集合是否为空,返回true 或者 false

    System.out.println(coll.isEmpty());

    (5)、clear():清空集合元素

    coll.clear();

    (6)、contains(Object obj):判断集合是否包含指定的obj元素,如果包含,返回true,否则返回flase

    boolean b1 = coll.contains("AA");
    System.out.println(b1);

    (7)、containsAll(Collection coll):判断当前集合是否包含coll中所有的元素

    Collection coll2 = new ArrayList();
    coll2.add(123);
    coll2.add('B');
    boolean b2 = coll.containsAll(coll2);
    System.out.println(b2);

    这里是coll里面的元素是否包含coll2集合里面的全部元素,若包含全部元素,则返回true,否则返回false。

    (8)、retainAll(Collection coll):求当前集合与coll的共有的元素,返回给当前集合(就相当于数学的交集)

    coll.retainAll(coll2);
    System.out.println(coll);

    (9)、remove(Object obj):删除集合中的obj元素。若删除成功,返回true;否则返回false。

    boolean b3 = coll.remove(123);

    (10)、removeAll(Collection coll):从当前集合中删除包含在coll中的元素。(相当于数学集合的差)

    coll.removeAll(coll2);

    (11)、toArray():将集合转化为数组

    Object[] obj = coll.toArray();
    for(int i=0;i<obj.length;i++){
        System.out.println(obj[i]);
    }

    集合的遍历方法:

    Collection接口的遍历方法:

    方法一:使用迭代器Iterator实现集合的遍历

    Collection coll = new ArrayList();
    coll.add(123);
    coll.add(456);
    coll.add(789);
    coll.add("AA");
    //iterator:返回一个Iterator接口实现类的对象,迭代器Iterator实现集合的遍历
    Iterator i = coll.iterator();
    while(i.hasNext()){
        System.out.println(i.next());
    }

    方法二:使用增强for循环实现集合(数组)的遍历

    Collection coll = new ArrayList();
    coll.add(123);
    coll.add(456);
    coll.add(789);
    coll.add("AA");
    //增强for循环实现集合的遍历
    for(Object i:coll){
        System.out.println(i);
    }
    
    
    String[] str = new String[]{"AA","BB","CC"};
    //遍历的类型 +变量 :遍历的数组
    for(String i:str){
        System.out.println(i); 
    }

    Map接口的遍历方法:

    (1)、Set keySet():遍历 key 集

    //遍历 key 集
    Set set = map.keySet();
    for(Object obj1 : set){
        System.out.println(obj1);
    }

    (2)、Collection values():遍历value 集

    //遍历value 集
    Collection values = map.values();
    Iterator i = values.iterator();
    while(i.hasNext()){
        System.out.println(i.next());
    }

    (3)、Set entrySet():遍历"key-value"对

    //遍历"key-value"对
            
    //方式一
    Set set1 = map.keySet();
    for(Object obj2 : set1){
        System.out.println(obj2 + "---->"+map.get(obj2));
    }
            
    //方式二:
    Set set3 = map.entrySet();
    for(Object obj3 : set3){
        Map.Entry entry = (Map.Entry) obj3;
    //    System.out.println(entry.getKey() + "---->" + entry.getValue());
        System.out.println(entry);
    }
  • 相关阅读:
    堆栈学习
    需要阅读的书籍
    Rust Book Lang Ch.19 Fully Qualified Syntax, Supertraits, Newtype Pattern, type aliases, never type, dynamic sized type
    Rust Lang Book Ch.19 Placeholder type, Default generic type parameter, operator overloading
    Rust Lang Book Ch.19 Unsafe
    Rust Lang Book Ch.18 Patterns and Matching
    Rust Lang Book Ch.17 OOP
    Rust Lang Book Ch.16 Concurrency
    Rust Lang Book Ch.15 Smart Pointers
    HDU3966-Aragorn's Story-树链剖分-点权
  • 原文地址:https://www.cnblogs.com/HHHY/p/10914944.html
Copyright © 2011-2022 走看看