刨析源码,深层讲解 Java-集合框架( 二 )


@Testpublic void test2(){Collection coll = new ArrayList();coll.add(123);coll.add(456);//Person p = new Person("Jerry",20);//coll.add(p);coll.add(new Person("Jerry",20));coll.add(new String("Tom"));coll.add(false);//1.contains(Object obj):判断当前集合中是否包含obj//我们在判断时会调用obj对象所在类的equals() 。boolean contains = coll.contains(123);System.out.println(contains);//trueSystem.out.println(coll.contains(new String("Tom")));//true//System.out.println(coll.contains(p));//trueSystem.out.println(coll.contains(new Person("Jerry",20)));//false //2.containsAll(Collection coll1):判断形参coll1中的所有元素是否都存在于当前集合中 。Collection coll1 = Arrays.asList(123,4567);System.out.println(coll.containsAll(coll1));//false}
@Testpublic void test3(){//3.remove(Object obj):从当前集合中移除obj元素 。Collection coll = new ArrayList();coll.add(123);coll.add(456);coll.add(new Person("Jerry",20));coll.add(new String("Tom"));coll.add(false);coll.remove(1234);System.out.println(coll);//[123, 456, Person@621be5d1, Tom, false]coll.remove(new Person("Jerry",20));System.out.println(coll);//[123, 456, Person@621be5d1, Tom, false]//4. removeAll(Collection coll1):差集:从当前集合中移除coll1中所有的元素 。Collection coll1 = Arrays.asList(123,456);coll.removeAll(coll1);System.out.println(coll);//[Person@621be5d1, Tom, false]}
@Testpublic void test4(){Collection coll = new ArrayList();coll.add(123);coll.add(456);coll.add(new Person("Jerry",20));coll.add(new String("Tom"));coll.add(false);//5.retainAll(Collection coll1):交集:获取当前集合和coll1集合的交集,并返回给当前集合Collection coll1 = Arrays.asList(123,456,789);coll.retainAll(coll1);System.out.println(coll);//[123, 456]//6.equals(Object obj):要想返回true,需要当前集合和形参集合的元素都相同 。Collection coll2 = new ArrayList();coll2.add(456);coll2.add(123);coll2.add(new Person("Jerry",20));coll2.add(new String("Tom"));coll2.add(false);System.out.println(coll.equals(coll2));//false}
@Testpublic void test5() {Collection coll = new ArrayList();coll.add(123);coll.add(456);coll.add(new Person("Jerry", 20));coll.add(new String("Tom"));coll.add(false);//7.hashCode():返回当前对象的哈希值System.out.println(coll.hashCode());//1412105286//8.集合 --->数组:toArray()Object[] arr = coll.toArray();for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}//123//456//Person@621be5d1//Tom//false//拓展:数组 --->集合:调用Arrays类的静态方法asList()List list = Arrays.asList(new String[]{"AA", "BB", "CC"});System.out.println(list);//[AA, BB, CC]List arr1 = Arrays.asList(new int[]{123, 456});System.out.println(arr1.size());//1List arr2 = Arrays.asList(new Integer[]{123, 456});System.out.println(arr2.size());//2}}
3. 子接口之一:List接口 3.1 概述
(1)鉴于Java中数组用来存储数据的局限性,我们通常使用List替代数组 。
(2)List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引,即“动态”数组,替换原有的数组 。
(3)List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素 。
(4)JDK API中List接口的实现类常用的有:、和 。
3.2 方法
List除了从集合继承的方法外,List 集合里还添加了一些根据索引来操作集合元素的方法 。
方法描述
void add(int index,ele)
在index位置插入ele元素
(int index,eles)
从index位置开始将集合eles中的所有元素添加进来
get(int index)
获取指定index位置的元素
int ( obj)