java复习 --集合类

List接口:可以存放重复内容;

set接口:不能存放重复内容,重复内容依靠hashcode和equal两个方法来区分;

Queue:队列;

SortedSet接口:对集合中的数据进行排序;

List接口:

List子类:ArrayList,Vector

ArrayList和Vector的区别:

LinkedList类和queue接口

LinedList 链表的操作类

Queue接口是Collection的子接口

Set接口:

Set接口是collection接口的子接口,但是和Collection或者List接口不同的是:set不能加入重复元素。

set的主要方法同Collection一致

Set接口的实例无法像List接口那样进行双向输出

Set子类:

散列存放:HashSet

有序存放:TreeSet

Set是无序的,List是按照存放顺序进行排序的。

对象排序必须实现Commparable接口,在commpareTo方法里面对对象数据进行排序

集合类的操作:

Iteartor

ListIterator

foreach输出

Enumeration输出

注意:在使用集合输出的时候必须形成如下思路,只要是碰到集合数据的操作,就一定使用Iterator接口

Iterator接口的操作原理:

Interator是专门的迭代输出接口,所谓的迭代输出就是将元素一个个进行判断,判断是否有内容,如果有取出来。

迭代器标准写法:

迭代删除元素:

注意点:

List接口存在删除方法:remove

如果在使用输出的过程中使用list的remove执行删除,会出现问题。

在使用Iterator输出的时候,不要使用集合类里面的remove方法,只能使用迭代器里面的remove方法。

ListIterator

Iterator的子接口;Iterator主要是实现从前到后的单项输出,如果实现从后到前或者从前到后的双向输出,就要使用子接口ListIterator

注意:只有List接口才存在ListIterator接口的实例化操作。

先进行向前才能进行向后操作。

Map接口:

Collection和Map的区别:

Collection的操作是一个对象,map是一对对象,key-->value形式进行存储

Map的子类:

HashMap:无序存放,新的操作类,key不能重复

HashTable,无序存储,旧的操作类,key不允许重复

TreeMap:可以排序的map集合,按照集合中的key进行排序,key不允许重复。

WeakHashMap:弱引用Map集合,当集合中否写内容不再使用时候,可以清除掉无用的数据,并使用gc回收。

IdentityHashMap,key可以重复的Map集合。

HashMap和HashTable的区别:

Map接口输出:

顺序如下:

使用foresh输出:

IdentityHashMap类:

如果希望key可以重复可以使用IdentityHashMap

SortedMap

SortedSet是TreeSet的实现接口

SortedMap是TreeMap的实现,是可以排序的map

Collections,集合类帮助类

提供集合类相关的帮助方法:

emptyList()

emptySet()

addAll()

replayAll()

Stack,栈

栈是先进后出的数据结构进行存储的,新的元素压在旧的元素上面;

Stack是Vector的子类

push入栈

pop出栈

时间: 2024-10-10 22:20:23

java复习 --集合类的相关文章

java复习集合类之List接口

List 为有序可重复列表 实现List接口的类主要是ArrayList 下面为ArrayList的测试代码 import java.util.ArrayList; public class demo4 { public static void main(String [] args){ ArrayList a1 = new ArrayList(); a1.add(new Integer(11)); a1.add(new Integer(23)); a1.add(new Integer(65))

java 复习001

java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时默认是扩展为1.5倍 + 1个 ArrayList,LinkedList,Vector 区别 Vector内存扩展和ArrayList一样,不过Vector是默认扩展为2倍 Vector支持线程的同步,因此牺牲了访问性能 ArrayList,Vector都是使用数组实现,插入删除效率低 Linked

Java:集合类的区别详解

Java中集合类的区别 Array是数组,不在集合框架范畴之内,一旦选定了,它的容量大小就不能改变了,所以通常在编程中不选用数组来存放. 集合 : 集合对象:用于管理其他若干对象的对象 数组:长度不可变 List: 有顺序的,元素可以重复 遍历:for .迭代 排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的Lis

java复习整理之集合

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ java复习整理之集合: Collection:集合中的最顶层接口,提供了一些操作集合的共性方法添加:boolean add(E e)boolean addAll(Collection<? extends E> c)删除:void

Java复习第一天---Javascript的基本知识点

1.HelloWord: 2.基础语法: 3.嵌入HTML 借助window.onload事件在整个窗体载入完毕之后运行程序代码 4.事件驱动: 5.DOM操作 5.1 查找元素节点 5.1.1 依据id值 方法:document.getElementById(id值) 获取到的是一个元素节点 var bj = document.getElementById("bj"); alert(getText(bj)); 5.1.2 依据标签名 方法:document.getElementsBy

Java复习第四天---IO流

File类测试 //根据指定的文件名和路径创建File对象 File file = new File("myFile.txt"); //file.exists();检测文件是否存在 boolean exists = file.exists(); System.out.println(exists); //按照file对象指定的路径和文件名创建一个新的文件 file.createNewFile(); exists = file.exists(); System.out.println(e

Java复习第二天---JavaSE基础

[1]以下关于 JVM 的叙述,哪些项正确? A.JVM 运行于操作系统之上,它依赖于操作系统 B.JVM 运行于操作系统之上,它与操作系统无关 C.JVM 支持 Java 程序运行,它能够直接运行 Java 字节码文件 D.JVM 支持 Java 程序运行,它能够直接运行 Java 源代码文件 扩展名为.java的是源代码文件(文本文件):开发时编写代码的文件 扩展名为.class的是字节码文件(二进制):系统运行时执行的文件 [2]下列选项中正确的表达式是: A.byte b = 128; 

java复习汇总之面试篇

这些个人感觉都是基础,希望看的园友不要喷. 1.什么是servlet线程安全,如何解决? 2.spring事物管理,在项目中你是怎么管理事物的? 3.java中的有几种线程? 4.java有几种锁? 5.怎么理解java中的多态,项目中何时用到抽象类? 6.如何处理js,sql注入? 7.struts2拦截器的原理? 8.如何理解spring AOP? 11.java中常用的集合,在项目中用到时,有什么需要注意的? 12.如果优化项目中sql,为什么要那样优化? 13.java性能优化? 14.

Java复习第三天---集合框架的相关知识

集合框架总览: Collection 接口常用方法 //1.add()向集合中添加数据 c.add(apple01); c.add(apple02); c.add(apple03); c.add(apple04); c.add(apple05); //2.isEmepty()检测当前集合是否为空 boolean empty = c.isEmpty(); System.out.println("is empty:"+empty); //3.size()返回当前集合的长度 int size