java基础知识点梳理3

集合框架

特点:

1:对象封装数据,对象多了也需要存储。集合用于存储对象。

2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合。因为集合是可变长度的。

集合和数组的区别:

1:数组是固定长度的;集合可变长度的。

2:数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。

3:数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。

 

数据结构:就是容器中存储数据的方式。

对于集合容器,有很多种。因为每一个容器的自身特点不同,其实原理在于每个容器的内部数据结构不同。

集合容器在不断向上抽取过程中。出现了集合体系。

在使用一个体系时,原则:参阅顶层内容。建立底层对象。


--< java.util >-- Collection接口:

Collection

    |--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

    |--Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性。

1,添加:

add(object):添加一个元素

addAll(Collection) :添加一个集合中的所有元素。

2,删除:

clear():将集合中的元素全删除,清空集合

remove(obj) :删除集合中指定的对象。注意:删除成功,集合的长度会改变。

removeAll(collection) :删除部分元素。部分元素和传入Collection一致。

3,判断:

boolean contains(obj) :集合中是否包含指定元素 。

booleancontainsAll(Collection) :集合中是否包含指定的多个元素。

boolean isEmpty():集合中是否有元素。

4,获取:

int size():集合中有几个元素。

5,取交集:

boolean  retainAll(Collection) :对当前集合中保留和指定集合中的相同的元素。如果两个集合元素相同,返回flase;如果retainAll修改了当前集合,返回true。

6,获取集合中所有元素:

Iterator  iterator()迭代器

7,将集合变成数组:

toArray();

List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

    |--ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。

    |--LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。

    |--Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。

--< java.util >-- Set接口

Set接口中的方法和Collection中方法一致的。Set接口取出方式只有一种,迭代器

|--HashSet底层数据结构是哈希表,线程是不同步的无序,高效;

HashSet集合保证元素唯一性:通过元素的hashCode方法,和equals方法完成的。

当元素的hashCode值相同时,才继续判断元素的equals是否为true。

如果为true,那么视为相同元素,不存。如果为false,那么存储。

如果hashCode值不同,那么不判断equals,从而提高对象比较的速度。

|--LinkedHashSet:有序,hashset的子类。

|--TreeSet对Set集合中的元素的进行指定顺序的排序。不同步。TreeSet底层的数据结构就是二叉树。

--< java.util >-- Iterator接口:

迭代器:是一个接口。作用:用于取集合中的元素。

Map集合:

|--Hashtable底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。

|--HashMap底层是哈希表数据结构,是线程不同步的。可以存储null键,null值。替代了Hashtable.

|--TreeMap底层是二叉树结构,可以对map集合中的键进行指定顺序的排序。

 

Map集合存储和Collection有着很大不同:

Collection一次存一个元素;Map一次存一对元素。

Collection是单列集合;Map是双列集合。

Map中的存储的一对元素:一个是键,一个是值,键与值之间有对应(映射)关系。

特点:要保证map集合中键的唯一性。

1,添加。

put(key,value):当存储的键相同时,新的值会替换老的值,并将老值返回。如果键没有重复,返回null。

void putAll(Map);

2,删除。

void clear():清空

value remove(key):删除指定键。

3,判断。

boolean isEmpty():

boolean containsKey(key):是否包含key

boolean containsValue(value):是否包含value

4,取出。

int size():返回长度

value get(key):通过指定键获取对应的值。如果返回null,可以判断该键不存在。当然有特殊情况,就是在hashmap集合中,是可以存储null键null值的。

Collection values():获取map集合中的所有的值。

5,想要获取map中的所有元素:

原理:map中是没有迭代器的,collection具备迭代器,只要将map集合转成Set集合,可以使用迭代器了。之所以转成set,是因为map集合具备着键的唯一性,其实set集合就来自于map,set集合底层其实用的就是map的方法。

时间: 2024-08-12 20:12:43

java基础知识点梳理3的相关文章

java基础知识点梳理1

抽象类:   在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所标示,声明为抽象方法. 抽象类的特点: 1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量). 2:抽象方法只定义方法声明,并不定义方法实现. 3:抽象类不可以被创建对象(实例化). 4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化.否则,该子类还是一个抽象

java基础知识点梳理

一.数据结构及运算 1.&和&&的区别? (1)&&会出现短路,如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算: 只能操作boolean类型数据: (2)&不会出现短路,将整个表达式都运算.既可以操作boolean数据还可以操作数. 2.标示符命名规则: 由数字(0-9),大小写英文字母,以及_和$组成. 不能以数字开头. 不能使用关键字来自定义命名. 3.数据类型: (1)基本数据类型(4类8种): 整数类型:byte.short

java基础知识点梳理2

多线程  进程:正在进行中的程序.其实进程就是一个应用程序运行时的内存分配空间.  线程:其实就是进程中一个程序执行控制单元,一条执行路径.进程负责的是应用程序的空间的标示.线程负责的是应用程序的执行顺序. 返回当前线程的名称:Thread.currentThread().getName() 线程的名称是由:Thread-编号定义的.编号从0开始. 线程要运行的代码都统一存放在了run方法中. 创建线程的第一种方式:继承Thread,由子类复写run方法. 步骤: 1.定义类继承Thread类:

Java基础知识梳理《一》

一.Java数据类型(简单称之为“四类八种”) java 基本的数据类型长度都是固定的,好处是在实现跨平台时就统一了. 1.整型 byte short int long (分别是1,2,4,8个字节) 类型 存储需求 位数 取值范围 byte 1字节 8位 -128~127 short 2字节 16位 -2^15 ~2^15-1 int 4字节 32位 -2^31~2^31-1 long 8字节 64位 -2^63~2^63-1 当超出int表示范围时,应该使用long型,添加后缀一大写的L 注

JAVA基础知识点总结(全集)

1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境,JRE:java运行环境 1.4第一个java程序:HelloWorld,java的入口是main(public static void main(String[] args)) 1.5java程序的开发步骤:.java编译(javac)成.class运行(java).class文件 2.基本数据

java基础知识点回顾

java基础数据类型 bollean 1 char 2 byte 1, short 2 , int 4, long 8 float 4, double 8 ----------------------------------------------------- java 四大特征 抽象,封装,继承,多态 ---------------------------------------------------- override 和 overload override(重写):子类重写父类方法体,

java基础知识点

1.Java语言的特点是什么? 简单性,面向对象的语言,一种与平台无关的语言,健壮性和安全性,多线程,垃圾回收机制: 2.如何编译和执行java文件?产生帮助文档用什么命令? 编译: javac   文件名 执行:java    类名 产生帮助文档:   javadoc  文件名 3.虚拟机的工作流程是什么? 编写源文件*.java---通过javac将源文件编译成字节码文件*.class 类加载------字节码效验-------解释器------操作系统 4.Jdk和jre是什么?main方

Java基础知识点总结

转:http://my.oschina.net/u/267295/blog/52716 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. ----------------------------------------

java基础知识点总结 1

>标示符: 所有的名字 和同类区分 方便调用       命名规则:由数字字母_$组成 不能以数字开头 区分大小写 不能是java关键字 命名规范:尽量增加可读性 类名:所有单词首字母大写 变量名/方法名:除了第一个单词 其他单词首字母大写 final常量: 所有字母大写 >关键字:java中被赋予特殊含义的单词或者字符 static void byte short int long float double boolean char protected private public stat