java集合

java集合,第1张

java集合

1.集合体系:

   分类:分为Collection和Map两种体系

          Collection接口:

                set集合:元素无序,不和重复的集合

                list集合:可重复的集合

        Map接口:有映射关系“key-value”的集合

2.Collection:

        Collection接口是List、Set 和Queue接口的父接口,该接口里定义的方法既可用于 *** 作Set集合,也可用于 *** 作List和Queue集合。

     

2.1 List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,

可以根据序号存取容器中的元素。JDK API中List接口的实现类常用的有: ArrayList、 linkedList和Vector。

 

 public static void main(String[] args) {
        Collection c=new ArrayList();
        //虽然集合里不能放基本类型的值,但Java支持自动装箱
        //添加元素
        c.add("孙悟空");
        c.add(6);
        System.out.println("c集合的元素个数为:"+c.size());

        //删除指定元素
        c.remove(6);
        System.out.println("c集合的元素个数为:"+c.size());
        //判断是否包含指定字符串
        System.out.println("c集合是否包含"孙悟空"字符串:"+c.contains("孙悟空"));

        c.add("Java");
        System.out.println("c的集合元素:"+c);

        Collection books=new HashSet();
        books.add("Java");
        books.add("C++");
        System.out.println("c集合是否完全包含books集合?"+c.containsAll(books));

        //用c集合减去books集合里的元素
        c.removeAll(books);
        System.out.println("c的集合元素:"+c);

        //删除c集合里的所有元素
        c.clear();
        System.out.println("c的集合元素:"+c);

        System.out.println("books的集合元素:"+books);
        //books集合里只剩下c集合里也包含的元素
        books.retainAll(c);
        System.out.println("books的集合元素:"+books);
    }

      输出

3.Iterator接口

Iterator则主要用于遍历Collection集合中的元素,Iterator对象称为迭代器。Iterator接口里定义了如下三个方法:

三.Set集合

        Set集合不允许包含相同的元素,Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回的是true,Set就不会接受这两个对象;反之,只要两个对象用equals方法比较返回false,Set就会接受这两个对象。

 public static void main(String[] args) {
        //创建集合
        Set books=new HashSet();
        //添加
        books.add(new String("Java"));
        //books集合两次添加的字符串对象明显不是同一个对象(因为两次都调用了new关键字创建字符串)
        //这两个字符串使用==运算符判断肯定返回false,但通过equals方法比较则返回true,所以添加失败
        boolean result=books.add(new String("Java"));
        //集合里只有一个元素
        System.out.println(result+"--->"+books);
    }

运行结果:

false--->[Java]

1.HashSet集合

(1).HashSet集合的特点

①不能保证元素的排列顺序,顺序有可能发生变化;

②HashSet不是同步的,如果多个线程同时访问HashSet,则必须通过代码保证其同步;

③集合元素可以为null.

(2).HashSet判断集合元素相同的标准

当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的HashCode值,然后根据该HashCode值决定该对象在HashSet中的存储位置。如果两个元素通过equals()方法比较返回true,但它们的hashCode()方法返回值不相等,HashSet将会把它们存储在不同的位置,依然可以添加成功。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4970015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存