本文共 3870 字,大约阅读时间需要 12 分钟。
Java语言入门
介绍
1 早期的OOP语言都通过数组的方式来实现对引用集的集中管理和维护。但是:
(1)数组的长度难以扩充; (2)数组中的数据类型必须相同。 2 Java容器是JavaAPI所提供的一系列类的实例,用于在程序中存放对象,主要位于java.util包中,其长度不受限制,类型不受限制,在存放String类的同时依然能够存放Integer类。 3 在Java中,如果有一个类 专门用来存放其他类的对象,这个类就叫做容器。容器与数组的区别和联系:
1 容器不是数组,不能通过下标的方式访问容器中的元素;
2 数组的所有功能通过ArrayList容器都可以实现,只是实现的方式不同; 3 容器可以通过toArray()方法,转为数组。容器的简单分类
1 从容器类图可知,数据容器主要分为两类:
(1)Collection:存放独立元素的序列。 (2)Map:存放key-value型的序列。 2 Collection是对Iterator接口的拓展。因此所有的Collection对象都可以使用对象名.iterator()的方法获取其迭代器iterator对象。 3 Map中提供了产生Collection的方法,可以方便地对键值对的值域进行操作。Collection接口
1 boolean add(Object o)
2 Iterator iterator() Object[] toArray() 3 Object remove(int index) 4 boolean contains(Object o) 5 boolean isEmpty() 6 int size() 7 void clear()List接口
1 java.util.List接口:描述列表结构,为Collection子接口。区分元素的顺序,可以有重复的元素。
2 void add(int index,Object element) 3 Object get (int index) 4 Object set(int index,Object element) 5 int indexOf (object o)Set接口
1 java.util.Set接口:描述集合结构,为Collection子接口。模仿了数学概念上的set,要求不包含重复元素(最多有一个null元素)。
2 并不保证迭代顺序(除了TreeSet)。 3 由于Set操作与底层的实现关联性很强,Set中实现的方法有限。Map接口
1 java.util.Map接口:描述了映射结构,Map结构允许以键集,值集合或键-值映射关系集的形式查看某个映射的内容。
2 Object put (Object key, Object value) 3 Object get(Object key) 4 boolean isEmpty() 5 Collection< V > values() 6 Set< K > keyset()ArrayList类
1 Java.util.ArrayList类实现了List接口,允许元素取值为null。除实现了List接口定义的所有功能外,还提供了一些方法来操作列表容量的大小。
2 ArrayList() 3 ArrayList(int initialCapacity) 4 void trimToSize() 5 Object clone() 6 举例:TestArrayList.javaVector类
1 Java.util.Vector也实现了List接口,其描述的也是可变长度的对象数组。
2 与ArrayList的差别:Vector是同步(线程安全)的,运行效率要低一些,主要用在多线程环境中,而ArrayList是不同步的,适合在单线程环境中使用。 3 void addElement(Object obj) 4 Object elementAt(int index) 5 void setElementAt(Object obj,int index) 6 举例:TestVector.javaStack类
1 Java.util.Stack类继承了Vector类,对应数据结构中以“后进先出”方式存储和操作数据的对象栈
2 方法: (1)Stack() (2)Object push(Object item) (3)Object pop() (4)Object peek() 3 举例:TestStack.javaIterator接口
1 Java.util.Iterator接口描述的是以统一方式对各种集合元素进行遍历/迭代的工具,也称迭代器。
2 boolean hasNext() 3 Object next() 4 void remove() 5 举例: (1)TestIterator.java (2)TestIterator2.javaHashSet
1 java.util.HashSet类实现了java.util.Set接口,描述典型的Set集合结构。
2 不允许出现重复元素,不保证集合中元素的顺序,最多只能有一个null元素。 3 boolean add(Object o) 4 boolean remove(Object o) 5 boolean contains(Object o) 6 举例:TestHashSet.javaTreeSet
1 Java.util.TreeSet类也实现了java.util.Set,它描述的是Set的一种变体—可以实现排序功能的集合。
2 使用元素的自然顺序对元素进行排序,或者根据创建set时的Comparator进行排序,具体根据取决于使用的构造方法。 3 Comparator<? super Object>comparator() 4 举例:TestTreeSet.javaComparable接口
1 java.lang.Comparable接口中定义的compareTo()方法用于提供对其实现类的对象进行整体排序所需的比较逻辑。
2 实现类基于compareTo()方法的排序被称为自然排序。用户在重写compareTo()方法以定制比较逻辑时,需要确保其与等价性判断方法equals()保持一致。 3 凡是需要进行比较排序的都应该实现compareTo()方法;凡是把类对象放到以树为内部结构的容器中都应该实现compareTo()方法。HashMap
1 Java.util.HashMap类实现了java.util.Map接口,该类基于哈希表实现了前述的映射集合结构。
2 HashMap结构不保证其中元素(映射信息)的先后顺序,并且允许使用null“值”和null“键”。 3 当集合中不存在当前检索的“键”所对应的映射值时,HashMap的get()方法会返回空值null,而不会允许出错。影响HashMap性能的两个参数:初始容量,加载因子 4 举例:TestHashMap.javaHashTable
1 Java.util.Hashtable也实现了Map接口。
2 Hashtable与HashMap的差别: (1)Hashtable中元素的键和值均不允许为null,而HashMap则允许。 (2)Hashtable是同步的,即线程安全,效率相对要低一些,适合在多线程环境下使用;而HashMap是不同步的,效率相对高一些,提倡在单线程环境中使用。 3 举例:TestHashTable.javaEnumeration接口
1 Java.util.Enumeration接口的功能与Iterator接口是重复的,但只提供了遍历Vector和Hashtable(及子类Properties)类型集合元素的功能,且不支持集合元素的移除操作。
2 新的实现应该优先考虑使用Iterator接口而不是Enumeration接口。Collections类
1 Java.util.Collections类中定义了多种集合操作方法,实现了对集合元素的排序、取极值、批量拷贝、集合结构转换、循环移位以及匹配性检查等功能。
2 static void cory(List dest,List src) 3 static void sort(List list) 4 static void reverse(List list) 5 static void shuffle(List list) 6 举例:TestCollections.javaArrays类
1 java.util.Arrays类定义了多种数组操作方法,实现了对数组元素的排序、填充、转换为列表或字符串形式、增强的检索和深度比较等功能。
2 static List asList(Object… a) 3 static void sort(<类型>[] a) 4 static int binarySearch(<类型>[] a,int key) 5 static String totString(<类型>[] a) 6 举例:TestArrays.java容器的使用
1 生成容器(可以有初始大小 ArrayList(int initialCapacity) 构造一个具有指定初始容量的空列表。)
2 从jdk中找到需要实现的方法,以实现增删改查转载地址:https://blog.csdn.net/weixin_45854582/article/details/106225414 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!