黑马程序员-java学习笔记-集合框架
2014-01-09 21:03
344 查看
集合框架Collection ArrayList al=new ArrayList
1添加元素 al.add("java1")
al.add("java2")
al.add("java3")
al.add("java4")
2获取长度 al.size()
3删除元素 al.remove("java2")/al.removeAll()删除一堆元素
4清空集合 al.clear()
5判断元素是否存在al.contains("java3")
6判断是否为空al.isEmpty()
7取交集al1.retainAll(al2) ;al1中指挥保留交集
迭代器(是一个接口)Iterator
ArrayList al=new ArrayList
al.add("java1")
al.add("java2")
al.add("java3")
al.add("java4")
Iterator it=al.iterator()//接口引用指向子类对象//获取迭代器用于取出集合中的元素
while(it.hasext())如果中还有元素返回ture
{it.next() }用于取出下一个元素
Collection
|--List;元素是有序的,元素可以重复,因为该集合体系中有索引
|--ArrayList;底层的数据结构使用的是数组结构(不同步);特点;查询快,但是增删稍慢(默认长度10)
|--LinkeList;底层使用的是链表结构 ;特点;增删快,查询慢
|--Vector;底层是数组数据结构(早期的,是同步的)被ArrayList替代
|--Set; 元素是无序的,元素不可以重复。
List
特有方法;凡是可以操作角标的方法都是该体系的特有方法
增;add(index,element)
addAll(index,collection)
删;remove(index)
改;set(index,element)
查;get(index)
subList(from,to)
listiterator()
其他方法
获取对象的位置indexOf("")
获取子列表subList(1.2)
Lise集合特有的迭代器。 LiseIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。因为会发生并发操作异常。
所以在迭代时,只能用迭代器地方法操作,可是迭代器的操作方法是有限的
只能对元素进行判断,取出,删除。
如果想修改,添加等操作,就需要使用其子接口 ListIterator
该接口只能通过List集合的listIterator方法获取
listIterator的方法
add()存储
hasNext()正向遍历
hasPrevious()反向遍历
next()返回列表中下一个元素
nextIndex()
remove()移除一个元素
set()替换元素(更改)
LinkedList的特有方法(旧版本)
//addFirst()
//addLast()
//getFirst()获取元素 旧版本中如果集合中没有元素会跑出异常
//getLast()
//removeFirst()获取 并删除
//removeLast()
LinkedList的特有方法(新1.6)
offerFirst()
offerLast()
peekFirst()
peekLast()
poolFirst()
poolLast()
Set集合功能和Collection是一致的
HashSet;底层数据结构式哈希表。线程是非同步的,保证元素唯一性的原理是判断元素的hashCoad值是否相同
如果相同还会继续判断元素的equal方法是否为真
TreeSet;特点,可以对set集合中元素排序(自然顺序) 底层数据结构是二叉树
Comparable接口可强制让对象有比较性
排序的第一种方式,让元素自身具备比较性
元素需要实现Comparable接口覆盖compareTo方法
第二种排序方式。
当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性。
需要集合初始化时就有课比较方式。所以定义了一个类,实现了Comparator接口,覆盖compaer方法
map集合 ;该集合存储键值对,一对一一对往里存,而且办证键的唯一性。无迭代器
1添加 put (k key, v value)
putAll(Map<? extends K,? extends V>m)
2删除 clear()
remove(object key)
3判断 containsValue(object value)
containsKey(object key)
isEmpty()
4获取 get(object key)
size()
values()
entrySet()
keySet()
Map
|--Hashtable
|--HashMap
|--TreeMap
比较器
1Comparator接口 覆盖compare方法
2C
工具类Collections(里面的方法都是静态)
sort()排序
max()取最大元素
binarySearch()二分查找
fill(list ,"pp")将list集合中的元素全部替换成pp
replaceAll(List<T> list,T oldval ,T newval)使用另一值替换列表中某一值
reverse(List<?> list)反转指定列表中元素的顺序
reverseOrder()逆向比较器
shuffle(list)随机排序
swap(List<?> list,int i,int j)交换元素
Arrays(用于操作数组的工具类 里面方法都是静态的)
asList;将数组变成list集合(注意,数组变成集合后不可以进行增删操作,因为数组长度是固定的)
集合变数组
collection中的方法toArray()
高级for循环
格式; for(数据类型 变量名:被遍历的集合(Collection)或者数组){}---------代替迭代器
只能对集合中元素遍历获取,不能进行其他操作
而迭代器除了遍历,还可以惊醒remove集合中的元素操作
如果是用ListItreator,还可以在遍历过程中进行增删改查的动作。
建议遍历数组还是用传统for,因为传统for可以有角标
静态导入
import java.util.*
import static java.util.Arrays.*导入的是Arrays这个类中的所有静态成员
import static java.lang.System.*导入的是System这个类中的所有静态成员
1添加元素 al.add("java1")
al.add("java2")
al.add("java3")
al.add("java4")
2获取长度 al.size()
3删除元素 al.remove("java2")/al.removeAll()删除一堆元素
4清空集合 al.clear()
5判断元素是否存在al.contains("java3")
6判断是否为空al.isEmpty()
7取交集al1.retainAll(al2) ;al1中指挥保留交集
迭代器(是一个接口)Iterator
ArrayList al=new ArrayList
al.add("java1")
al.add("java2")
al.add("java3")
al.add("java4")
Iterator it=al.iterator()//接口引用指向子类对象//获取迭代器用于取出集合中的元素
while(it.hasext())如果中还有元素返回ture
{it.next() }用于取出下一个元素
Collection
|--List;元素是有序的,元素可以重复,因为该集合体系中有索引
|--ArrayList;底层的数据结构使用的是数组结构(不同步);特点;查询快,但是增删稍慢(默认长度10)
|--LinkeList;底层使用的是链表结构 ;特点;增删快,查询慢
|--Vector;底层是数组数据结构(早期的,是同步的)被ArrayList替代
|--Set; 元素是无序的,元素不可以重复。
List
特有方法;凡是可以操作角标的方法都是该体系的特有方法
增;add(index,element)
addAll(index,collection)
删;remove(index)
改;set(index,element)
查;get(index)
subList(from,to)
listiterator()
其他方法
获取对象的位置indexOf("")
获取子列表subList(1.2)
Lise集合特有的迭代器。 LiseIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。因为会发生并发操作异常。
所以在迭代时,只能用迭代器地方法操作,可是迭代器的操作方法是有限的
只能对元素进行判断,取出,删除。
如果想修改,添加等操作,就需要使用其子接口 ListIterator
该接口只能通过List集合的listIterator方法获取
listIterator的方法
add()存储
hasNext()正向遍历
hasPrevious()反向遍历
next()返回列表中下一个元素
nextIndex()
remove()移除一个元素
set()替换元素(更改)
LinkedList的特有方法(旧版本)
//addFirst()
//addLast()
//getFirst()获取元素 旧版本中如果集合中没有元素会跑出异常
//getLast()
//removeFirst()获取 并删除
//removeLast()
LinkedList的特有方法(新1.6)
offerFirst()
offerLast()
peekFirst()
peekLast()
poolFirst()
poolLast()
Set集合功能和Collection是一致的
HashSet;底层数据结构式哈希表。线程是非同步的,保证元素唯一性的原理是判断元素的hashCoad值是否相同
如果相同还会继续判断元素的equal方法是否为真
TreeSet;特点,可以对set集合中元素排序(自然顺序) 底层数据结构是二叉树
Comparable接口可强制让对象有比较性
排序的第一种方式,让元素自身具备比较性
元素需要实现Comparable接口覆盖compareTo方法
第二种排序方式。
当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性。
需要集合初始化时就有课比较方式。所以定义了一个类,实现了Comparator接口,覆盖compaer方法
map集合 ;该集合存储键值对,一对一一对往里存,而且办证键的唯一性。无迭代器
1添加 put (k key, v value)
putAll(Map<? extends K,? extends V>m)
2删除 clear()
remove(object key)
3判断 containsValue(object value)
containsKey(object key)
isEmpty()
4获取 get(object key)
size()
values()
entrySet()
keySet()
Map
|--Hashtable
|--HashMap
|--TreeMap
比较器
1Comparator接口 覆盖compare方法
2C
工具类Collections(里面的方法都是静态)
sort()排序
max()取最大元素
binarySearch()二分查找
fill(list ,"pp")将list集合中的元素全部替换成pp
replaceAll(List<T> list,T oldval ,T newval)使用另一值替换列表中某一值
reverse(List<?> list)反转指定列表中元素的顺序
reverseOrder()逆向比较器
shuffle(list)随机排序
swap(List<?> list,int i,int j)交换元素
Arrays(用于操作数组的工具类 里面方法都是静态的)
asList;将数组变成list集合(注意,数组变成集合后不可以进行增删操作,因为数组长度是固定的)
集合变数组
collection中的方法toArray()
高级for循环
格式; for(数据类型 变量名:被遍历的集合(Collection)或者数组){}---------代替迭代器
只能对集合中元素遍历获取,不能进行其他操作
而迭代器除了遍历,还可以惊醒remove集合中的元素操作
如果是用ListItreator,还可以在遍历过程中进行增删改查的动作。
建议遍历数组还是用传统for,因为传统for可以有角标
静态导入
import java.util.*
import static java.util.Arrays.*导入的是Arrays这个类中的所有静态成员
import static java.lang.System.*导入的是System这个类中的所有静态成员
相关文章推荐
- 黑马程序员—Java学习笔记之集合框架(三)以及1.5新特性
- 黑马程序员--Java学习笔记之集合框架
- 黑马程序员----Java集合框架学习笔记2 Map-工具类-泛型
- 黑马程序员 java学习笔记——集合框架2
- 黑马程序员—Java学习笔记之集合框架(二)
- 黑马程序员_java基础学习笔记06_集合框架
- 黑马程序员 java学习笔记——集合框架1
- 黑马程序员java学习笔记——集合框架
- 黑马程序员----Java集合框架学习笔记1-List 与Set
- 黑马程序员——java学习笔记--集合框架
- Java学习笔记33(集合框架七:Collections工具类)
- Java学习笔记之集合框架3
- JAVA 集合框架学习笔记
- 黑马程序员------Java基础学习------集合框架
- (32)Java学习笔记——集合框架 / Collection 接口 / Iterator 迭代器
- java大数据学习笔记(三) 集合框架
- 黑马程序员_学习笔记:9) 集合框架1:Collection(List、Set)、Iterator、List(ArrayList、LinkedList、Vector)
- 黑马程序员 java学习笔记 Day4:集合
- 集合框架ArrayList、List、Vector+JAVA学习笔记-DAY15
- 黑马程序员——JAVA笔记——集合框架5——Collections、Arrays