• Java---25---集合框架共性方法


    集合类

    为什么会出现集合类

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对较多个对象的操作,就对对象进行存储,集合就是存储对象最经常使用的一种方式

    数组和集合类同一时候容器,有何不同?

    数组尽管也能够存储对象,可是长度不可变。集合的长度是可变的。数组中能够存储基本数据类型,集合仅仅能存储对象。

    集合类的特点:

    集合仅仅用于存储对象。集合长度是可变的,集合能够存储不同类型的对象。

    为什么会出现这么多的容器呢?

    由于每个容器对数据的存储方式都有不同

    这个存储方式称之为:数据结构

    共性方法:(Collection 的方法)

    增、删、改、查。

    方法摘要
     boolean add(E e)
              确保此 collection 包括指定的元素(可选操作)。

     boolean addAll(Collection<?

    extends E> c)
              将指定 collection 中的全部元素都加入到此 collection 中(可选操作)。

     void clear()
              移除此 collection 中的全部元素(可选操作)。
     boolean contains(Object o)
              假设此 collection 包括指定的元素,则返回 true
     boolean containsAll(Collection<?> c)
              假设此 collection 包括指定 collection 中的全部元素。则返回 true

     boolean equals(Object o)
              比較此 collection 与指定对象是否相等。
     int hashCode()
              返回此 collection 的哈希码值。
     boolean isEmpty()
              假设此 collection 不包括元素,则返回 true
     Iterator<E> iterator()
              返回在此 collection 的元素上进行迭代的迭代器。

     boolean remove(Object o)
              从此 collection 中移除指定元素的单个实例,假设存在的话(可选操作)。
     boolean removeAll(Collection<?

    > c)
              移除此 collection 中那些也包括在指定 collection 中的全部元素(可选操作)。

     boolean retainAll(Collection<?

    > c)
              仅保留此 collection 中那些也包括在指定 collection 的元素(可选操作)。

     int size()
              返回此 collection 中的元素数。

     Object[] toArray()
              返回包括此 collection 中全部元素的数组。
    <T> T[]
    toArray(T[] a)
              返回包括此 collection 中全部元素的数组;返回数组的执行时类型与指定数组的执行时类型同样。

    add 方法的參数类型是Object 以便于接收随意类型的对象

    集合中存储的都是对象的引用(地址)



    import java.util.ArrayList;
    
    public class Main {
    
    	public static void main(String[] args) {
    		//method_1();
    		method_2();
    	}
    
    	public static void method_2() {
    		ArrayList al1 = new ArrayList();
    		ArrayList al2 = new ArrayList();
    
    		al1.add("abc01");
    		al1.add("abc02");
    		al1.add("abc03");
    		al1.add("abc04");
    
    		al2.add("abc01");
    		al2.add("abc02");
    		al2.add("abc05");
    		al2.add("abc06");
    
    		al1.removeAll(al2);//去除al1与al2的交集,保存在al1中
    
    		sop(al1);
    		sop(al2);
    		/*
    		 * 打印结果:
    		 * [abc03, abc04]
    		 * 
    		 * [abc01, abc02, abc05, abc06]
    		 * 
    		 * */
    	}
    
    	public static void method_1() {
    		// 创建一个集合容器。使用Collection接口的子类ArrayList
    		ArrayList a1 = new ArrayList();
    		// 加入元素
    		a1.add("abc01");
    		a1.add("abc02");
    		a1.add("abc03");
    		a1.add("abc04");
    
    		// 获取个数 集合长度
    		System.out.println(a1.size());
    		// 打印集合
    		System.out.println(a1);
    		// 删除元素
    		a1.remove("abc03");
    		System.out.println(a1);
    		/*
    		 * 打印结果 4 [abc01, abc02, abc03, abc04] [abc01, abc02, abc04]
    		 */
    		// a1.clear();//清空集合
    
    		// 推断某一元素是否在集合中
    		System.out.println(a1.contains("abc01"));
    		// 推断集合是否为空
    		System.out.println(a1.isEmpty());
    
    	}
    
    	public static void sop(Object obj) {
    		System.out.println(obj);
    	}
    }


    ===============================迭代器=============================

    迭代器事实上就是集合用来取出元素的方式。

    取出元素并能够对元素进行操作。



    方法摘要
     boolean hasNext()
              假设仍有元素能够迭代。则返回 true

     E next()
              返回迭代的下一个元素。

     void remove()
              从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。



    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		ArrayList al1 = new ArrayList();
    
    		al1.add("abc01");
    		al1.add("abc02");
    		al1.add("abc03");
    		al1.add("abc04");
    //		Iterator it = al1.iterator();//获取迭代器,用于取出集合中的元素
    //		
    //		//sop(it.next());//返回迭代的下一个元素。
    //		
    //		sop(it.hasNext());//假设仍有元素能够迭代。则返回 true
    //		while (it.hasNext())
    //		{
    //			sop(it.next());
    //		}
    		for (Iterator it = al1.iterator();it.hasNext();){
    			sop(it.next());
    		}
    		
    	}
    	public static void sop(Object obj) {
    		System.out.println(obj);
    	}
    }


  • 相关阅读:
    HDU 5546 深搜吧 主要是提取的时候容易重复
    HDU 5543 新型01背包 两端放一半就可以有其价值
    HDU 2586 查找两点之间的距离
    HDU 5652 二分加搜索 http://acm.split.hdu.edu.cn/showproblem.php?pid=5652
    美句
    最短路径问题
    1766 装果子
    Watchcow
    codevs 4768 跳石头
    noi 7219:复杂的整数划分问题
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5152812.html
Copyright © 2020-2023  润新知