JAVA基础复习与总结<六> 数组_容器_泛型
2021-07-08 14:06
标签:统一 格式 shm java 使用 arrays dHash ping 总结 数组的常用方法 java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。 具有以下功能: 具体说明请查看下表: 序号 方法和说明 1 public static int binarySearch(Object[] a, Object key) 用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。 2 public static boolean equals(long[] a, long[] a2) 如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 3 public static void fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 4 public static void sort(Object[] a) 对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 容器_Collection &Map 表示一组对象,它是集中,收集的意思,就是把一些数据收集起来。 Collection函数库是在java.util包下的一些接口和类,类是用来产生对象存放数据用的,而接口是访问数据的方式。 Collection函数库与数组的亮点不同: 1、数组的容量是有限制的,而Collection库没有这样的限制,它容量可以自动调节。 2、Collection函数库只能用来存放对象,而数组没有这样的限制。 Collection接口是Collection层次结构中的根接口,它定义了一些最基本的访问方法,让我们能用统一的方式通过它或者它的子接口来访问数据。 区别:Collection代表一组对象,Collection函数库就是java中的集合框架,Collection接口,是这个集合框架中的根接口。 存放在Collection库中的数据,被称为元素(element)。 接口: List:有序可重复 Set:无序不可重复 HashSet: Map:键值对。可以通过一个对象找到另外一个对象 Collection接口:定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。 Map接口定义了存储“键(key)— 值(value)映射对“的方法。 List分类ArrayList和LinkList,一个是顺序表,一个是链表。 Map接口: Map——映射 实现Map接口的类用来存储键(key)— 值(value)对。 Map接口的实现类有HashMap和TreeMap等。 Map类中存储的键—值对通过用键来标识,所以键值不能重复。 1、List list的特点是有序且元素可以重复,分为ArrayList和LinkedList两种。 1.1 ArraytList ArrayList是顺序表,顺序表的特征是数组内的元素按顺序存储,根据其在数组中的序号就可以查询的特定元素,非常便于查询。但是不便于插入与删除,因为在数组中间插入或删除一个元素,其后面的元素都要前进或者后退一位。 1)ArrayList初始化 ArrayList arr1 = new ArrayList(); //这种情况下默认有10个存储空间 ArrayList arr2 = new ArrayList(3); //这种情况下存储空间内数目与 //括号内数字相同 ArrayList arr3 = new ArrayList(arr2); //这种情况下相当于把另一个数组赋值 //给了新定义的数组 2) ArrlyList的插入、删除、匹配,查询等其它详细方法参考API 1.2 LinkedList LinkedList就是一个双向链表。双向链表没有所谓的序号,取而代之的是链表的每个结点都包括前驱结点,后继结点,data值三个部分。像一个串一样串成一条链子。这种结构的好处插入、删除特别方便,只需要找到需要插入或者删除的结点,再将此结点的前后指针连好就可以了,不需要像顺序表一样进行大量数据的位置变动。但是对于随机访问,匹配,查询等方法就比较麻烦,因为需要从链表的表头开始一个一个往下去顺序查找。 2、Map Java中的map集合使用键(key)值(value)来保存数据,其中值(value)可以重复,但键(key)必须是唯一,也可以为空,但最多只能有一个key为空,它的主要实现类有HashMap、LinkedHashMap、TreeMap。 3、Set Set也是一个集合,特点是有序不可重复,所以Set最常用的就是测试归属性,很容易的询问出某个对象是否存在Set中。并且Set是具有和Collection完全一样的接口,没有额外的功能,只是表现的行为不同。 泛型 泛型的概念: 泛型即使参数化类型,使用广泛的类型。 起因: 数据类型不明确: 装入数据的类型都被当作Object对待,从而“丢失”自己的实际类型(比如int等) 。获取数据时往往需要转型,效率低,容易产生错误。 作用: 安全:在编译的时候检查类型安全。 省心:所有的强制转换都是自动和隐式的,提高代码的重用率。 泛型类: 定义类时使用泛型。 1)格式 class 类名 字母列表>{
}
不能用在静态属性、静态方法上。
2)使用:指定具体类型
泛型使用时不能指定基本类型
泛型常见字母:
T: Type表示类型
K V 分别表示键值对
E 表示Element
? 表示不确定的类型
泛型继承
泛型类的子类还可以擦除掉泛型标记
只能:要么同时擦除,要么子类大于等于父类的类型。不能子类擦除,父类泛型。
属性类型:父类中随父类定,在子类中随着子类定。
方法重写:随父类而定。
泛型接口与继承是同理的。
分享一篇大佬写的关于泛型的博客,非常好!
https://www.cnblogs.com/lwbqqyumidi/p/3837629.html
标签:统一 格式 shm java 使用 arrays dHash ping 总结
原文地址:https://www.cnblogs.com/ErictChandler/p/9582422.html
下一篇:JavaScript 函数
文章标题:JAVA基础复习与总结<六> 数组_容器_泛型
文章链接:http://soscw.com/index.php/essay/102391.html