zoukankan      html  css  js  c++  java
  • 集合概述及Collection接口的常用方法

    java集合像是一种容器,可以动态的把多个对象的引用放到容器中

    java的集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组

    package com.aff.coll;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Date;
    import java.util.Iterator;
    
    import org.junit.Test;
    
    /*
     1.存储对象可以考虑: ①数组(基本数据类型&引用数据类型) ②集合(引用数据类型)
     2.数组存储对象的特点:Student[] stu = new  Student[20]; stu[0] = new Student();
                                弊端:①一旦创建,其长度不可变,②真实的数组存放的对象的个数是不可知的
     java集合可分为Collection和Map两个体系
     Collection接口:
                    set:元素无序,不可重复的集合
                    list:元素有序,可重复的集合  ----    "动态"数组
     Map接口:具有映射关系 "key-value对" 的集合
     */
    public class TestCollection {
        @Test
        public void testCollection2() {
            Collection coll = new ArrayList();
            coll.add(123);
            coll.add("AA");
            coll.add(new Date());
            coll.add("BB");
            coll.add(new Person("mm", 13));
    
            // .contains(Object obj); 判断集合中是否包含指定的obj元素,如果包含,返回true,反之返回false
            // 判断的依据:根据元素所在的类的equals()方法进行判断
            // 如果存入集合中的元素是自定义类的对象,要求:自定义类要重写equals() 方法
            boolean b1 = coll.contains(123);
            System.out.println(b1);// true
            System.out.println(coll.size());
            boolean b2 = coll.contains(new Person("mm", 13));
            System.out.println(b2);// true
    
            // .containsAll(Collection coll); 判断当前集合中是否包含coll中所有的元素
            Collection coll1 = new ArrayList();
            coll1.add(123);
            coll1.add(new String("AA"));
            boolean b3 = coll.containsAll(coll1);
            System.out.println(b3);// true
    
            // .retainAll(Collection coll); 取两个集合中的交集
    
            // .remove( Object obj); 删除集合中的obj元素。 若删除成功返回true,否则返回false
            boolean b4 = coll.remove("BB");
            System.out.println(b4);// true
    
            // .removeAll(Collection coll);从当前集合中删除包含在coll中的元素
            coll.removeAll(coll1);
            System.out.println(coll);
    
            // .equals(Object obj); 判断两个集合中的所有元素完全是否相同
            System.out.println(coll1.equals(coll));
    
            // .hashCode(); 算集合中的哈希值,
            System.out.println(coll.hashCode());
    
            // .toArray(); 将集合转换为数组
            Object[] obj = coll.toArray();
            for (int i = 0; i < obj.length; i++) {
                System.out.println(obj[i]);
            }
    
            // iterator();  返回一个Iterator接口实现类的对象,进而实现集合的遍历
            Iterator iterator = coll.iterator();
            /*
             * for (int i = 0; i < coll.size(); i++) {
             * System.out.println(iterator.next()); }
             */
            // 方式二:使用迭代器Iterator实现集合的遍历
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
        }
    
        @Test
        public void testCollection1() {
            Collection coll = new ArrayList();
            // .seze(); 返回集合元素的个数
            System.out.println(coll.size());
    
            // .add(Object obj);向集合中添加一个元素
            coll.add(123);
            coll.add("AA");
            coll.add(new Date());
            coll.add("BB");
            System.out.println(coll.size());// 4
    
            // .addAll(c);将形参coll中包含的所有元素添加到当前集合中
            Collection coll1 = Arrays.asList(1, 2, 3);// 数组转换为集合
            coll.addAll(coll1);
            System.out.println(coll.size());// 7
            System.out.println(coll);// ArrayList重写了toString方法所以打印了集合中的元素
    
            // .isEmpty(); 判断集合是否为空
            System.out.println(coll.isEmpty());
    
            // .clear(); 清空集合元素
            coll.clear();
            System.out.println(coll.isEmpty());
        }
    }
    All that work will definitely pay off
  • 相关阅读:
    Python3编写网络爬虫11-数据存储方式四-关系型数据库存储
    Python3编写网络爬虫10-数据存储方式三-CSV文件存储
    Python3编写网络爬虫09-数据存储方式二-JSON文件存储
    Python3编写网络爬虫08-数据存储方式一-文件存储
    Python3编写网络爬虫07-基本解析库pyquery的使用
    Python3编写网络爬虫06-基本解析库Beautiful Soup的使用
    Python3编写网络爬虫05-基本解析库XPath的使用
    Python3编写网络爬虫04-爬取猫眼电影排行实例
    LeetCode455 分发饼干(简单贪心—Java优先队列简单应用)
    LeetCode874 模拟行走机器人(简单模拟—Java之HashSet简单应用)
  • 原文地址:https://www.cnblogs.com/afangfang/p/12583193.html
Copyright © 2011-2022 走看看