java核心基础

一、Collection集合类
1、集合是存储对象数据的集合容器。
2、集合比对象的优势:
1、集合可以存储任意类型的对象数据,数组只能存储同一种数据类型的数据。
2、集合的长度是会发生变化的,数组的长度是固定的。
3、Collection单例集合的根接口List如果是实现了List接口的集合类,具备的特点:有序、可重复Set如果是实现了Set接口的集合类,具备特点:无序,不可重复
4、Collection接口中的方法: 
增加
add(E e) 添加一个元素。添加成功返回true,添加 失败返回false.
addAll(Collection c) 把一个集合 的元素添加到另外一个集合中去。
删除
clear() 清空集合中的元素
remove(Object o) 指定集合中的元素删除,成功返回true,失败返回false
removeAll(Collection c) 删除此集合于c集合的交集元素
retainAll(Collection c) 保留刺激 和与c集合的交集元素查看
size() 查看并返回元素的个数。
判断
isEmpty() 判断集合是否为空,返回boolean
contains(Object o) 判断集合中是否存在指定的元素,返回boolean其实内部是以来equals方法进行比较的
containsAll(Collection<?> c) 判断c集合是否为此集合的子集
迭代
toArray() 把集合中的所有元素存储到一个Object的数组中返回
iterator() 迭代器:用来抓取集合中的元素

二、List接口
1、List接口的特点:有序,可重复
2、List接口中特有方法:
添加
add(int index, E element)
addAll(int index, Collection<? extends E> c)
获取:
get(int index)
indexOf(Object o)
lastIndexOf(Object o)
subList(int fromIndex, int toIndex)
修改:
set(int index, E element)
迭代
listIterator()返回的是List接口中特有的迭代器
3、List接口中特有的方法,都与索引值有关。

三、ListIterator接口
ListIterator特有的方法:
hasPrevious() 判断是否存在上一个元素。
previous() 当前指针先向上移动一个单位,然后再取出当前指针指向的元素。
next(); 先取出当前指针指向的元素,然后指针向下移动一个单位。 
add(E e) 把当前有元素插入到当前指针指向的位置上。
set(E e) 替换迭代器最后一次返回的元素。

四、ArrayList
ArrayList的特点:ArrayList底层维护了一个Object数组,所以查询速度快,增删速度慢。
应用场景:查询比较多,增删比较少的时候,比如高校的图书馆。

五、LinkedList
LinkedList底层使用了链表,查找速度慢。
增删速度块Linkedlist特有的方法:
方法介绍
addFirst(E e) 把元素放到集合的首位置
addLast(E e) 把元素添加到集合的末尾处
getFirst()得到集合的第一个元素
getLast() 得到集合的最后一个元素
removeFirst()删除集合中的首位元素并返回
removeLast() 删除集合中的末位元素并返回
descendingIterator() 返回逆序的迭代器对象

时间: 2024-10-09 23:23:44

java核心基础的相关文章

Java核心基础(2) 面向对象

Java面向对象基础 面试题总结(2) 1.Overload和Override(OverWrite)有什么区别?Overload 的方法是否可以改变返回值的类型? ??1)重载Overload是方法的重载,表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同,这些不同包括位置不同,个数不同,类型不同. ??2)重写 Override 是方法的重写,表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父

Java核心基础(1) 基本语法

Java基本语法 面试题总结(1) 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制 ??可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一 致. 2.Java 中有没有 goto? ??有,但是是作为保留字使用,现在没有在Java中使用. 3.八种基本数据类型和包装类以及大小. 八种基本数据类型 包装类 大小 byte Byte 8位 -2^7 ~ 2^7-1 short Short 16位 -2^15 ~ 2^15-

java核心学习(九) java基础类库之Scanner

从第九节开始,对java的基础类库进行初步学习,这些基础类其中的一些内容是java程序员的基本功 言归正传,开始学习.对于java类库的具体使用方法,可以在IDE里面查看源码和注释,也可以在官方网站查看文档,本学习只是简单过一边重点,并不会面面俱到. Scanner顾名思义就是一个扫描器,可以从文件.输入流.字符串解析数据. 在new Scanner时可以使用不同的构造器参数来创建不同数据源的Scanner,如Scanner sc = new Scanner(System.in)就是对标准输入流

Java基础学习笔记二十三 Java核心语法之反射

类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会建立一个Class对象. 链接指的是将Java类的二进制代码合并到JVM的运行状态之中的过程.在链接之前,这个类必须被成功加载.类的链接包括验证.准备和解析等几个步骤. 验证:是否有正确的内部结构,并和其他类协调一致. 准备:负责为类的静态成员分配内存,并设置默认初始化值 解析:

Java核心编程快速学习

Java核心编程部分的基础学习内容就不一一介绍了,本文的重点是JAVA中相对复杂的一些概念,主体内容如下图所示. 反射reflect是理解Java语言工作原理的基础,Java编译器首先需要将我们编写的.java源文件编译为.class字节码,然后再JVM虚拟机上运行,接下来通过一个表格,来了解反射的基本操作. 功能 示例 泛化的Class引用 Class<?> intClass = int.class Class<? extends Number> bounded = int.cl

Android核心基础第五天

一.学习目标及要求 课程目标 课程内容(必须讲的内容,就是讲课的知识点的顺序) * 掌握Activity 配置 * 掌握 Intent 显示意图 * 掌握 Intent 隐式意图 * 掌握两种意图的使用场景 * 掌握 activity 开启的数据传递 * 掌握activity的生命周期 * 掌握横竖屏切换的生命周期 * 掌握不同android版本 生命周期的细微差别 * 掌握开启activity获取返回值 * 掌握请求码 结果码的作用 * 掌握程序入口activity配置参数 * 掌握显示意图 

Java核心知识点学习----多线程中的阻塞队列,ArrayBlockingQueue介绍

1.什么是阻塞队列? 所谓队列,遵循的是先进先出原则(FIFO),阻塞队列,即是数据共享时,A在写数据时,B想读同一数据,那么就将发生阻塞了. 看一下线程的四种状态,首先是新创建一个线程,然后,通过start方法启动线程--->线程变为可运行可执行状态,然后通过数据产生共享,线程产生互斥---->线程状态变为阻塞状态---->阻塞状态想打开的话可以调用notify方法. 这里Java5中提供了封装好的类,可以直接调用然后构造阻塞状态,以保证数据的原子性. 2.如何实现? 主要是实现Blo

Java核心:类加载和JVM内存的分配

类的加载: 指的是将class文件的二进制数据读入到运行时数据区(JVM在内存中划分的) 中,并在方法区内创建一个class对象. 类加载器: 负责加载编译后的class文件(字节码文件)到JVM(Java虚拟机)当中. 而类加载器主要分为以下几种: 1.Bootstrap class loader (引导类加载器) 负责加载Java核心类库.在jre\lib目录下,包括rt.jar(Java基础类库),这些 都是Java的核心类库.而且这个加载器是由C语言编写的,所以在Java程序中是获取 不

Java 并发基础

Java 并发基础 线程简述 线程是进程的执行部分,用来完成一定的任务; 线程拥有自己的堆栈,程序计数器和自己的局部变量,但不拥有系统资源, 他与其他线程共享父进程的共享资源及部分运行时环境,因此编程时需要小心,确保线程不会妨碍同一进程中的其他线程; 多线程优势 进程之间不能共享内存,但线程之间共享内存/文件描述符/进程状态非常容易. 系统创建进程时需要为该其分配很多系统资源(如进程控制块),但创建线程的开销要小得多,因此线程实现多任务并发比进程效率高. Java语言内置多线程支持,而不是单纯采