Java-集合1

集合

  1. 内存层面需要针对于多个数据进行存储。此时,可以考虑的容器有,数组、集合类
  2. 数组存储多个数据方面的特点:

>数组一旦初始化,其长度就是确定的。

>数组中的多个元素是依次紧密排列的,有序的,可重复的,

>(优点)数组一旦初始化完成,其元素的类型就是确定的。不是此类型的元素,就不能添加到此数组中。

>(优点)元素的类型既可以是基本数据类型,也可以是引用数据类型

数组存储多个数据方面的弊端:

>数组一旦初始化,其长度就不可变了

>数组中存储数据特点的单一性。对于无序的、不可重复的场景的多个数据就无能为力了。

>数组中可用的方法、属性都极少。具体的需求,都需要自己来组织相关的代码逻辑。

>针对于数组中元素的删除、插入操作,性能较差。

  1. Java集合框架体系 (java.util包下)

java.util.Collection:存储一个一个的数据

l-----子接口:List:存储有序的、可重复的数据

|----HashSet(主要实现类)、LinkedHashSet、TreeSet

|-----子接口:Set:储存无序的、不可重复的数据

|-----HashSet(主要实现类)、LinkedHashSet、TreeSet

Java.util.Map:存储一对一对的数据(key-value键值对,(x1,y1)、(x2,y2)-->y=f(x),类似于高中的函数)

|----HashMap(主要实现类)、LinkedHashMap、TreeMap、Hashtable、Properties

  1. 学习的程度把握:

层次1:针对具体特点的多个数据,知道选择相应的适合的接口的主要实现类,会实例化,会调用常用的方法。

层次2:区分接口中不同的实现类的区别。

层次3:1.针对常见的实现类,需要熟悉底层源码

  1. 熟悉常见的数据结构

  1. 常用方法: (Collection中定义了15个抽象方法。这些方法需要大家熟悉!)
  2. Add(Object obj);
  3. addAll(Collection coll);
  4. Clear();
  5. isEmpty();
  6. Size();
  7. Contains(Object obj);
  8. ContainsAll(Collection coll)
  9. retainAll(Collection coll)
  10. Remove(Object obj)
  11. RemoveAll(COllection coll)
  12. hashCode()
  13. Equals()
  14. toArray()

*****************

  1. 集合与数组的相互转换:

集合---->数组

 Object[] arr = coll.toArray();//返回包含当前数组集合中所有元素的数组

数组--->集合调用Arrays.asList()静态方法传入数组,或元素

Collection list = Arrays.asList(arr);

System.out.println(Arrays.asList(list));

  1. 向CoLLection中添加元素的要求
  1. 要求元素所属的类一定要重写equals();

原因:

因为ColLection中的相关方法在使用时,要调用元素所在类的equals()。

实例代码:

/**

 * ClassName:CollectionTest

 * Description:

 *              测试Collection中方法的使用

 *              add();向当前集合增加元素

 *              size():获取集合中元素的个数

 *              isEmpty():判断当前集合是否是空;

 *               contains(Object obj)判断当前集合是否包含传入元素

 *              containsAll(Collection coll)判断当前集合是否包含传入集合

 *               equals(Object obj)判断当前集合于obj是否相等

 */



public class CollectionTest {

    public static void main(String[] args) {

        Collection coll = new ArrayList();



        //add();向当前集合增加元素

        coll.add("AAA");

        coll.add(128);//自动装箱了

        coll.add("学习JAVA");

        coll.add(new Person("Tom",12));



        System.out.println(coll);

        Collection coll1 = new ArrayList();

        coll1.add("BB");

        coll1.add(456);



        System.out.println(coll.size());

        coll.addAll(coll1);



        System.out.println(coll);



        //size():获取集合中元素的个数

        System.out.println(coll.size());



        //isEmpty():判断当前集合是否是空;

        System.out.println(coll.isEmpty());



        //contains(Object obj)判断当前集合是否包含传入元素

        System.out.println(coll.contains("AA"));

        System.out.println(coll.contains(128));

        System.out.println(coll.contains(new String("学习JAVA")));

        System.out.println(coll.contains(new Person("Tom",12)));



        //containsAll(Collection coll)判断当前集合是否包含传入集合

        Collection coll2 =new ArrayList();



        //add()

        coll2.add("AAA");

        coll2.add(128);



        System.out.println(coll.containsAll(coll2));



        //equals(Object obj)判断当前集合于obj是否相等

        System.out.println(coll.equals(coll2));



    }

}



package TEST0723;



import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collection;



/**

 *        Object[] arr = coll.toArray()//返回包含当前数组集合中所有元素的数组

 *        hashCode()获取对象的哈希值

 *        iterator()返回迭代器对象,用于集合遍历

 *        静态方法传入数组,或元素转换成数组

 *        Arrays.asList()

 *        Collection list = Arrays.asList(arr);//静态方法传入数组,或元素转换成数组

 */

public class CollectionTest3 {

    public static void main(String[] args) {

        Collection coll = new ArrayList();

        //add();向当前集合增加元素

        coll.add("AAA");

        coll.add(128);//自动装箱了

        coll.add("学习JAVA");

        coll.add(new Person("Tom",12));

        coll.add("BBB");



        //集合-->数组

        Object[] arr = coll.toArray();//返回包含当前数组集合中所有元素的数组

        System.out.println(Arrays.toString(arr));



        //hashCode()获取对象的哈希值

        System.out.println(coll.hashCode());//获取对象的哈希值



        //iterator()返回迭代器对象,用于集合遍历



        //静态方法传入数组,或元素转换成数组

        //Arrays.asList()

        Collection list = Arrays.asList(arr);//静态方法传入数组,或元素转换成数组

        System.out.println(Arrays.asList(list));

    }

}

你可能感兴趣的:(python,数据结构,算法)