Java集合框架基础——ArrayList

Java集合框架

集合:

   集合就是一个容器,可以存储很多东西,可以添加,可以删除,可以修改。

Collection接口:

1、Collection是Java集合式接口,式所有集合的父接口.该接口里面提供了很多操作集合的抽象方法。
2、JBK源码的一个介绍(Ctrl+H:查看源码)
The root interface in the collection hierarchy. A collection
represents a group of objects, known as its elements. Some
collections allow duplicate elements and others do not. Some are ordered
and others unordered. The JDK does not provide any direct
implementations of this interface: it provides implementations of more
specific subinterfaces like Set and List. This interface
is typically used to pass collections around and manipulate them where
maximum generality is desired.
注意:Jdk对于Collection接口不提供直接的显示类,而是提供子接口,子接口的层次结构如《子接口的层次结构》
collection集合里面各个类的层次关系图
在这里插入图片描述

Collection接口提供的抽象方法

boolean add(E e) 
向集合里面添加元素。  
boolean addAll(Collection<? extends E> c) (批量添加元素)
将指定集合中的所有元素添加到这个集合(可选操作)。  
void clear() 
从这个集合中移除所有的元素(可选操作)。  
boolean contains(Object o) 
返回 true如果集合包含指定元素。  
boolean containsAll(Collection<?> c) 
返回 true如果这个集合包含指定集合的所有元素。  
boolean equals(Object o) 
将指定的对象与此集合进行比较,以进行相等性。  
int hashCode() 
返回此集合的哈希代码值。  
boolean isEmpty() 
返回 true如果集合不包含任何元素。  
Iterator<E> iterator() 
返回此集合中的元素的迭代器。  
default Stream<E> parallelStream() 
返回一个可能并行 Stream与集合的来源。  
boolean remove(Object o) 
从这个集合中移除指定元素的一个实例,如果它是存在的(可选操作)。  
boolean removeAll(Collection<?> c) 
删除此集合中包含的所有元素(可选操作)的所有元素(可选操作)。  
default boolean removeIf(Predicate<? super E> filter) 
删除满足给定谓词的这个集合的所有元素。  
boolean retainAll(Collection<?> c) 
仅保留包含在指定集合中的这个集合中的元素(可选操作)。  
int size() 
返回此集合中的元素的数目。  
default Spliterator<E> spliterator() 
创建此集合中的元素的 Spliterator。  
default Stream<E> stream() 
返回一个序列 Stream与集合的来源。  
Object[] toArray() 
返回包含此集合中所有元素的数组。  
<T> T[] toArray(T[] a) 
返回包含此集合中所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型。  

Collection中子类ArrayList提供的方法测试

package com.tedu.collection;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collection;

public class Demo1 {
    /**
     * Java中Collection接口中的实现方法,子类:ArrayList
     *会对ArrayList对象进行:访问长度、添加、删除、修改、遍历集合中的元素、
     * 判断是否非空、以及怎样批量添加删除等
     */

    @Test
    public void a1(){
        //建立Collection对象
        Collection c1 = new ArrayList();
        //访问列表长度
        System.out.println("此时新建对象c1的长度为:"+c1.size());
        //添加列表元素
        c1.add("六枝特区");
        c1.add("安顺");
        c1.add("都匀");
        c1.add("遵义");
        c1.add("毕节");
        System.out.println("添加以后的长度为:"+c1.size());
        //遍历列表元素(特殊形式的for循环,也可以使用迭代)
        for(Object a:c1){
            System.out.println("当前元素为:"+a);
        }
        //可以直接输出列表c1
        System.out.println(c1);
        //删除列表元素
        Boolean f=c1.remove("遵义");
        if (f){
            System.out.println("删除成功");
        }
    }

    //批量删除元素.removeAll
    @Test
    public void a2(){
        Collection c1 = new ArrayList();
        Collection c2 = new ArrayList();
        c1.add("六枝特区");
        c1.add("安顺");
        c1.add("都匀");
        c1.add("遵义");
        c1.add("毕节");
        c2.add("六枝特区");
        c2.add("安顺");
        c2.add("都匀");
        c2.add("铜仁");
        c1.removeAll(c2);//从c1中删除c2中的相同的列表元素
        for (Object a:c1){
            System.out.println("当前元素是:"+a);
        }
        //判断是否非空isEmpty
        Boolean f=c2.removeAll(c2);//删除自身
        if(f){
            System.out.println(c2.isEmpty());
        }
        System.out.println(c2.size());
    }

}

a1()运行的结果:
在这里插入图片描述

a2()的运行结果
在这里插入图片描述

使用迭代的方法遍历集合元素

//测试使用迭代的方式遍历ArrayList对象里面的元素,
/**
 * 步骤:
 * 1、创建好ArrayList对象c1,并添加好集合元素
 * 2、获取c1中的迭代对象
 * Iterator iterator = c1.iterator();
 * 3、利用while循环遍历列表
 * 格式如下:
 * while(iterator.hasnext()){//判断是对象是否非空
 *     System.out.prinfln("当前对象元素为:"+iterator.next());
 * }
 */
@Test
public void a3(){
    //创建ArrayList对象
    Collection c1 = new ArrayList();
    //添加元素
    c1.add("六枝特区");
    c1.add("安顺");
    c1.add("都匀");
    c1.add("遵义");
    c1.add("毕节");
    c1.add("六枝特区");
    //得到集合c1的迭代器
    Iterator iterator=c1.iterator();
    //利用while(iterator.hasNext())循环遍历集合c1中的元素
    while(iterator.hasNext()){
        System.out.println("当前的元素为:"+iterator.next());
    }

运行结果:
在这里插入图片描述
测试将ArrayList对象集合转化成数组

/**
 * 测试将ArrayList对象列表转化成数组(.toArray()方法)
 * 利用语句
 * Object[] obj=arrayList.toArray();
 * for(int i=0;i<obj.length;i++){
 *     System.out.println(obj[i]);
 * }
 */
@Test
public void a4(){
    //创建ArrayList对象
    Collection c1 = new ArrayList();
    //添加元素
    c1.add("六枝特区");
    c1.add("安顺");
    c1.add("都匀");
    c1.add("遵义");
    c1.add("毕节");
    c1.add("六枝特区");
    Object[] obj=c1.toArray();
    for (int i = 0; i <obj.length ; i++) {
        System.out.println(obj[i]);
    }
}

运行结果:
在这里插入图片描述

Set

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值