• 集合与数组


    数组的优点:

    1. 数组一旦初始化,长度就是确定的
    2. 数组存储数据类型单一
    3. 通过数组索引的方式调用数组元素
    4. 数组中存储的多个元素是有序的,可以重复的,使用的内存空间是连续的

    数组的弊端:

    1. 一旦初始化,长度就不可变
    2. 数组中操作面较简单,没有涉及到增,删,改,查,等操作的方法
    3. 针对与开发中的复杂问题,使用数组难以完全描述,比如:存储无序的,不可重复的数据

    集合:

    1. Collection接口:存储的是一个一个的数据
      1. ---->List接口:有序的可重复的数据
        1. --->ArrayList,LinkedList,Vector
      2. ---->Set接口:无序的不可重复的数据
        1. --->HashSet,LinkedSet,TreeSet
    2. Map接口:存储的是一对一对的数据,key-value
      1. ----->HashMap,LinkedMap,TreeMap,Hashtable,Properties

    集合框架的优点:解决了数组操作多个对象中的弊端

    注意:向Collection添加对象,必须重写该对象的equals()方法

    Collection的常用方法;

    package collection;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    
    import org.junit.Test;
    
    public class CollectionTest {
        
        @Test
        public void test1() {
            //添加元素
            Collection coll=new ArrayList();
            coll.add("aa");
            coll.add(new Object());
            coll.add(1);
            System.out.println(coll);
            
            //获取集合长度
            System.out.println(coll.size());
            
            //.addAll()
            Collection coll1=new  ArrayList<>();
            coll1.add(2);
            coll1.addAll(coll);
            System.out.println(coll1);
            
            //clear()清空集合
            coll.clear();
            
            //判断集合是否为空
            System.out.println(coll.isEmpty());
            
            coll1.add(new Person("tom", 12));
            System.out.println(coll1);
            
            //contions(Object obj)方法:判断元素是否包含obj元素
            //其实是调用了Object 中的equals()方法
            //使用该方法必须重写所在类的equals()方法
            System.out.println(coll1.contains(new Person("tom", 12)));
            
            //contionsAll():判断coll1所有元素是否都存在于coll集合
            System.out.println(coll.containsAll(coll1));
            
            //remove():删除
            //此时要确保存在哟删除的元素存在于该集合内
            coll.add("abcd");
            coll.remove("abcd");
            System.out.println(coll);
            
            //removAll()从当前集合删除与coll集合共有的元素
            System.out.println(coll1.removeAll(coll));
            
            //retainAll():获取当前集合与coll集合共有的元素
            System.out.println(coll1.retainAll(coll));
            
            //equals()方法
            
            //hashCode()
            
            //toArray():集合转换为数组
            coll1.add("aaaa");
            Object [] arr=coll1.toArray();
            System.out.println(Arrays.toString(arr));
            
            //数组转换为集合
            Collection c=Arrays.asList(new String[] {"aaa","ddd","ccc"});
            System.out.println(Arrays.asList("mm"));
            System.out.println(c);
        }
        
    }

    //使用Iterator()迭代器

        初始化Collection 集合接口:    Collection c=new ArrayList();

    调用该集合的iterator方法来生成迭代器对象    Iterator iterator=c.iterator();
    package collection;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    import org.junit.Test;
    
    public class IteratorTest {
        @Test
        public void test1() {
            Collection c=new ArrayList();
            c.add("mm");
            c.add(new Person("Tom", 12));
        //    System.out.println(c);
            
            //iterator():返回一个迭代器实例
            Iterator iterator=c.iterator();
            
        //    System.out.println(iterator.getClass());
        //    System.out.println(iterator.next());
        //    System.out.println(iterator.next());
            //System.out.println(iterator.hasNext());
        
            //for
            for (int i = 0; i < c.size(); i++) {
                System.out.println(iterator.next());
            }
            //增强for循环
            /*
             * for(要遍历的集合的元素的类型 临时变量:要遍历的集合变量){
             * sout(临时变量);
             * }
             */
            for (Object object : c) {
                System.out.println(object);
            }
            
            //hasNext()推荐
            while (iterator.hasNext()){
                System.out.println(iterator.next());
                
            }
        }
    }
  • 相关阅读:
    python_58_装饰器1
    python_57_高阶函数
    python_56_递归
    python_55_局部和全局变量
    python_54_函数调用函数
    python_53_函数补充
    python_52_函数返回值2
    mysql 使用 GROUP BY 时报错 ERROR 1055 (42000)
    sql之left join、right join、inner join的区别
    C++ 函数的重载和参数默认值
  • 原文地址:https://www.cnblogs.com/ylblikestudyJava/p/12390123.html
Copyright © 2020-2023  润新知