美文网首页
集合框架之ArrayList常用方法

集合框架之ArrayList常用方法

作者: 安安静静写代码 | 来源:发表于2017-08-11 09:40 被阅读28次
    • 集合: 是一种容器
    • 数组: 长度固定 可以放任意类型的数据 有下标
    • 集合: 长度不固定 可以放任意类型的对象, 有的有下标,有的没有
    • 有序:展示的顺序和加入的顺序一致
      集合的继承关系;
    QQ截图20170811093932.png

    Collection接口的实现类ArrayList的常用方法:

    package demo2;
    import java.util.ArrayList;
    import java.util.Collection;
    
    import java.util.Iterator;
    import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
    import org.omg.CORBA.SystemException;
    public class TestCollection {
    
        public static void main(String[] args) {
            
         Collection collection = new ArrayList();
         collection.add("abc");
         collection.add(4);//将4包装成了Integer对象
         collection.add(1);
         Collection collection2 = new ArrayList();
         collection2.add(2);
         collection2.add(56);
         //将collection加到了collection2中
         collection2.addAll(collection);
         //删
         // System.out.println(collection.remove("abc"));
         System.out.println(collection);
         //不止会清楚collection中所有元素,还会删除collection2中
         //和collection相同的的元素
         collection2.removeAll(collection);
         //清除所有
         // collection.clear();
         //打印集合长度,集合长度指集合中长度的个数
         System.out.println(collection.size());
         //isEmpty 判断集合是否为空,没有数据则返回true
         System.out.println(collection.isEmpty());
         collection.add(4);
         //判断集合中是否包含指定的参数
         System.out.println(collection.contains(4));
         //判断是否完全包含
         System.out.println(collection.contains(collection2));
         
         //toArray()
         Object[] objects = collection2.toArray();
         for (Object object : objects) {
            System.out.println(object);
         }
         //2增强for循环
         for(Object object : collection2)
         {
             collection2.remove(object);
             System.out.println(object);
         }
         //迭代器  hasNext() 判断是否有下个元素,next()获取下一个元素并将指针移向下一个
         Iterator iterator = collection.iterator();
         while(iterator.hasNext())
         {
            
            System.out.println(iterator.next());
            iterator.remove();//删除元素
         }
                
        }
    }
    

    ArrayList的四种输出方法
    注意:
    在增强for循环中如果修改集合会抛出并发修改异常,有原因是在遍历的时候给集合创建了一个副本遍历的是副本,在遍历副本的过程中改变原来集合的结构所以会出错

    但是在迭代器中,迭代器iteratir有自带的remove(),它会删除副本中的元素所以不会抛异常

    
    
    package TsetArrayList;
    
    /*
     * 缺点:新增和删除与元素的时候需要移动大量的元素,效率较低
     * 优点:查找和修改的时候根据下标遍历 效率高
     * 
     */
    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Test1 {
    
        public static void main(String[] args) {
            
            ArrayList list = new ArrayList();
            
            list.add("abc");
            list.add("def");
            
            ArrayList list2 = new ArrayList<>();
            list.addAll(4,list);
            list2.add("二狗");        
            list2.add("小香菇");       
            list.add("康帅傅");
            //填充 int 类型的数 认为是下标
            list.remove(4);//元素有4  下标有4 它会删下标为4的
            list.isEmpty();
            //list.clear();
            //输出下标位置
            System.out.println(list.indexOf("def"));
            //list 遍历方式
            Object[] objects = list.toArray();
            //增强for循环
            for (Object object : list2) {
                System.out.println(object);
            }
            //迭代器
            Iterator iterator = list.iterator();
            
            while(iterator.hasNext())
            {
                System.out.println(iterator.next());            
            }
            //循环get方法
            for(int i=0;i<list.size();i++)
            {
                System.out.println(list.get(i));
            }       
            
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:集合框架之ArrayList常用方法

          本文链接:https://www.haomeiwen.com/subject/ochlrxtx.html