栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java集合框架详解(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java集合框架详解(1)

Java集合(一) Java集合框架概述
    为了方便对多个对象的操作,就要对对象进行存储,java集合就像一种容器,可以动态地把多个对象的引用放入容器中。java集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组。集合、数组都是对多个数据进行存储操作的结构,简称java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储。数组在存储多个数据方面的特点:

    一旦初始化以后,其长度就已经确定了数组一旦定义好,其存储数据类型确定,我们也就只能操作指定类型的数据了 数组存储多个数据的缺点:

    一旦初始化以后,长度不可修改数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用数组存储数据的特点:有序、可重复。对于无序、不可重复的需求,不能满足 java集合可分为Collection和Map两种体系

    Collection接口:单列数据,定义了存取一组对象的方法的集合

    List:元素有序、可重复的集合(动态数组)

    ArrayList/linkedList/Vector Set:元素无序、不可重复的集合(高中讲的“集合”)

    HashSet/linkedHashSet/TreeSet Map接口:双列数据,保存具有映射关系“key-value对”的集合(可以多对一不能一对多)

    HashMap/linkedHashMap/TreeMap/Hashtable/Properties

Collection接口 Collection接口常用方法
package CollectionP;

import org.junit.Test;

import java.io.Serializable;
import java.util.*;

public class CollectionTest {
    @Test
    public void test1(){
        Collection coll=new ArrayList<>();
        //1.add(object e):将元素e添加到集合coll中
        coll.add("AA");
        coll.add("BB");
        coll.add(123);//自动装箱
        coll.add(new Date());
      
      
      
      
        //2.size():获取添加的元素的个数
        System.out.println(coll.size());//4

      
      
      
      
        //3.addAll():将coll1集合中的元素添加到当前的集合中
        Collection coll1=new ArrayList<>();
        coll1.add(456);
        coll1.add("CC");
        coll.addAll(coll1);
        System.out.println(coll.size());//6

      
      
      
      
      
      
        //4.clear():清空集合元素
        coll.clear();

      
      
      
      
      
      
        //5.isEmpty():判断当前集合是否为空
        System.out.println(coll.isEmpty());//true







    }
    @Test
    public void test2(){
        Collection coll=new ArrayList<>();
        coll.add(123);
        coll.add(456);
        coll.add(new String("Tom"));
        coll.add(false);
        //6.contains(Object obj):判断当前集合中是否包含obj
        //我们在判断时会调用obj对象所在类的equals()
        boolean contains = coll.contains(123);
        System.out.println(contains);//true
        System.out.println(coll.contains(new String("Tom")));//true,判断的是内容
//说明:向collection接口的实现类的对象中添加数据obj时,要求obj所在类要重写equals()

      
      
      
      
      

        //7.containsAll(Collection coll1):判断形参coll中的所有元素是否都存在于当前集合中
        Collection coll1= Arrays.asList(123,456);
        System.out.println(coll.containsAll(coll1));//true




      
      
      
      
    }
    @Test
    public void test3(){
        //8.remove(Object obj):从当前集合中移除obj元素
        Collection coll=new ArrayList<>();
        coll.add(123);
        coll.add(456);
        coll.add(new String("Tom"));
        coll.add(false);
        coll.remove(123);
        System.out.println(coll);//[456, Tom, false]
        coll.remove(new String("Tom"));
        System.out.println(coll);


      
      
      
      
      
        //9.removeAll(Collection coll1):从当前集合中移除coll1中所有的元素
        Collection coll1=Arrays.asList(123,456);
        coll.removeAll(coll1);
        System.out.println(coll);//[false]


      
      
      
      
      

    }
    @Test
    public void test4(){
        Collection coll=new ArrayList<>();
        coll.add(123);
        coll.add(456);
        coll.add(new String("Tom"));
        coll.add(false);
        //10.retainAll():求两个集合的交集,修改当前集合
        Collection coll1=Arrays.asList(123,456,789);
        coll.retainAll(coll1);
        System.out.println(coll);//[123, 456]

      
      
      
      
      
      

    }
    @Test
    public void test5(){
        Collection coll=new ArrayList<>();
        coll.add(123);
        coll.add(456);
        coll.add(new String("Tom"));
        coll.add(false);
        //11.hashCode():返回当前对象的哈希值
        System.out.println(coll.hashCode());

      
      
      
      
      
      

        //12.集合--->数组:toArray():
        Object[] objects = coll.toArray();
        for(int i=0;i< objects.length;i++){
            System.out.println(objects[i]);//遍历数组中所有元素

          
          
          
          
          
        }
        //13.数组--->集合
        List list = Arrays.asList(new String[]{"AA", "BB", "CC"});
        System.out.println(list);//[AA, BB, CC]


    }

}

Iterator方法
    集合元素的遍历操作,使用迭代器Iterator接口Iterator对象称为迭代器(设计模式的一种),主要用于遍历Collection集合中的元素:提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节。迭代器模式,就是为容器而生,类似于“公交车上的售票员”Iterator仅用于遍历集合,其本身不提供承装对象的能力,如果需要创建Iterator对象,则必须有一个被迭代的集合集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。遍历操作
public void test1(){
        Collection coll=new ArrayList<>();
        coll.add(123);
        coll.add(456);
        coll.add(new String("Tom"));
        coll.add(false);
        Iterator iterator = coll.iterator();
        //方式一:不推荐
        
        //方式二:推荐
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }


    }
//hasNext:是否还有下一个元素
    测试迭代器Iteratorremove()
public void test2(){
        Collection coll=new ArrayList<>();
        coll.add(123);
        coll.add(456);
        coll.add(new String("Tom"));
        coll.add(false);
        Iterator iterator = coll.iterator();
        //删除集合中的"Tom"
        while(iterator.hasNext()){
            Object next = iterator.next();
            if("Tom".equals(next)){
                iterator.remove();
            }
        }
        //遍历集合
        iterator= coll.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }


    }

//内部定义了remove(),可以在遍历的时候,删除集合中的元素
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号