Java中的集合

**

Java中的集合

**

1.集合可以理解为是一个可变数组
2.集合有好几个不同的算法
3.集合有很多子类。

集合

Collection 接口

Collection coll = new ArrayList();

方法
size():返回集合中元素的个数

add(Object obj):向集合中添加一个元素

addAll(Colletion coll):将形参coll包含的所有元素添加到当前集合中

isEmpty():判断这个集合是否为空

clear():清空集合元素

contains(Object obj):判断集合中是否包含指定的obj元素
① 判断的依据:根据元素所在类的equals()方法进行判断
②明确:如果存入集合中的元素是自定义的类对象,要去:自定义类要重写equals()方法

constainsAll(Collection coll):判断当前集合中是否包含coll的所有元素

rentainAll(Collection coll):求当前集合与coll的共有集合,返回给当前集合

remove(Object obj):删除集合中obj元素,若删除成功,返回ture否则

removeAll(Collection coll):从当前集合中删除包含coll的元素

equals(Object obj):判断集合中的所有元素 是否相同

hashCode():返回集合的哈希值

toArray(T[] a):将集合转化为数组
①如有参数,返回数组的运行时类型与指定数组的运行时类型相同。

iterator():返回一个Iterator接口实现类的对象,进而实现集合的遍历。

Iterator iter = coll.iterator();

方法一:
for (int i=0; i<coll.size();i++){
System.out.println(iter.next());
}

方法二:
While (iter.hasNext()){
Systen.out.println(iter.next());
}

Set接口和List接口的区别

Set: 不允许元素重复, 集合元素唯一(元素可以为null), 不能保证迭代顺序恒久不变, 无序(存储和取出不一致).
List: 允许元素重复, 并且元素有序(存储和取出一致).

List 接口

List 为可变数组
在集合中删除一个元素,除非这是最后一个元素,否则不可以在循环中删除。

add():在列表的指定位置查出指定元素
addAll():将指定集合中的所有元素都插入到列表的指定位置
get(int i):返回列表中指定位置的元素
indexOf():返回此列表中第一次出现的指定元素的索引;如不包含,返回-1
lastIndexOf():返回此列表中最后出现的指定元素的索引;如不包含,返回-1
listIterator():返回此列表的列表迭代器
listIterator(int index):返回此列表的列表迭代器,从列表的指定位置开始
remove():移除列表中指定位置的元素
set(int index,Object o):用指定元素替换列表中指定位置的元素
subList(int fromIndex,int toIndex):返回(截取)列表中[fromIndex,toIndex)之间的部分视图

ArrayList:
有序的数组集合

方法摘要
add(E e)
将指定的元素添加到此列表的尾部。
add(int index, E element)
将指定的元素插入此列表中的指定位置。
addAll(Collection<? extends E> c)
按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
addAll(int index, Collection<? extends E> c)
从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
clear()
移除此列表中的所有元素。
clone()
返回此 ArrayList 实例的浅表副本。
contains(Object o)
如果此列表中包含指定的元素,则返回 true。
ensureCapacity(int minCapacity)
如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
get(int index)
返回此列表中指定位置上的元素。
indexOf(Object o)
返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
isEmpty()
如果此列表中没有元素,则返回 true
lastIndexOf(Object o)
返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
remove(int index)
移除此列表中指定位置上的元素。
remove(Object o)
移除此列表中首次出现的指定元素(如果存在)。
removeRange(int fromIndex, int toIndex)
移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。
size()
返回此列表中的元素数。
toArray()
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
toArray(T[] a)
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
trimToSize()
将此 ArrayList 实例的容量调整为列表的当前大小。

LinkedList:
有序的链表结构的列表。

方法摘要

add(E e)
将指定元素添加到此列表的结尾。
add(int index, E element)
在此列表中指定的位置插入指定的元素。
addAll(Collection<? extends E> c)
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序。
addAll(int index, Collection<? extends E> c)
将指定 collection 中的所有元素从指定位置开始插入此列表。
addFirst(E e)
将指定元素插入此列表的开头。
addLast(E e)
将指定元素添加到此列表的结尾。
clear()
从此列表中移除所有元素。
clone()
返回此 LinkedList 的浅表副本。
contains(Object o)
如果此列表包含指定元素,则返回 true。
descendingIterator()
返回以逆向顺序在此双端队列的元素上进行迭代的迭代器。
element()
获取但不移除此列表的头(第一个元素)。
get(int index)
返回此列表中指定位置处的元素。
getFirst()
返回此列表的第一个元素。
getLast()
返回此列表的最后一个元素。
indexOf(Object o)
返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
listIterator(int index)
返回此列表中的元素的列表迭代器(按适当顺序),从列表中指定位置开始。
offer(E e)
将指定元素添加到此列表的末尾(最后一个元素)。
offerFirst(E e)
在此列表的开头插入指定的元素。
offerLast(E e)
在此列表末尾插入指定的元素。
peek()
获取但不移除此列表的头(第一个元素)。
peekFirst()
获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。
peekLast()
获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null。
poll()
获取并移除此列表的头(第一个元素)
pollFirst()
获取并移除此列表的第一个元素;如果此列表为空,则返回 null。
pollLast()
获取并移除此列表的最后一个元素;如果此列表为空,则返回 null。
pop()
从此列表所表示的堆栈处弹出一个元素。
push(E e)
将元素推入此列表所表示的堆栈。
remove()
获取并移除此列表的头(第一个元素)。
remove(int index)
移除此列表中指定位置处的元素。
remove(Object o)
从此列表中移除首次出现的指定元素(如果存在)。
removeFirst()
移除并返回此列表的第一个元素。
removeFirstOccurrence(Object o)
从此列表中移除第一次出现的指定元素(从头部到尾部遍历列表时)。
removeLast()
移除并返回此列表的最后一个元素。
boolean removeLastOccurrence(Object o)
从此列表中移除最后一次出现的指定元素(从头部到尾部遍历列表时)。
set(int index, E element)
将此列表中指定位置的元素替换为指定的元素。
size()
返回此列表的元素数。
toArray()
返回以适当顺序(从第一个元素到最后一个元素)包含此列表中所有元素的数组。
toArray(T[] a)
返回以适当顺序(从第一个元素到最后一个元素)包含此列表中所有元素的数组;返回数组的运行时类型为指定数组的类型。

ArrayList 和 LinkedList

存储方式不一样:数组(ArrayList) 链表(LinkedList)
查询的效率不一样:ArrayLis 更快
更新数据的效率不一样: LinkedList 更快

Vector:
线程更加安全。

Set 接口:

不包含重复元素的集合
HashSet:
无序列表,以哈希码的形式存储。

TreeSet:
是一个默认的自然排序的不重复列表,可以使用Comparator进行排序

Map 集合:

键值对集合

Key(可以用Set存储) value(可用List存储)

将键映射到值的对象,一个映射不能包含重复的键,一个键只能映射一个值。

方法摘要
void clear()
从此映射中移除所有映射关系(可选操作)。
boolean containsKey(Object key)
如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。
Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射关系的 Set 视图。
boolean equals(Object o)
比较指定的对象与此映射是否相等。
V get(Object key)
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
int hashCode()
返回此映射的哈希码值。
boolean isEmpty()
如果此映射未包含键-值映射关系,则返回 true。
Set keySet()
返回此映射中包含的键的 Set 视图。
V put(K key, V value)
将指定的值与此映射中的指定键关联(可选操作)。
void putAll(Map<? extends K,? extends V> m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。
V remove(Object key)
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
int size()
返回此映射中的键-值映射关系数。
Collection values()
返回此映射中包含的值的 Collection 视图。

Map 的遍历方法:

1.	//直接输出
	System.out.println(map);
	
2.	//keySet()-----输出键
	Set<Integer> set = map.keySet();
	
	for(Integer ss : set) {
		System.out.println(ss + ":" + map.get(ss));
	}
	
			
3.	//entrySet()
	Set sd = map.entrySet();
	for(Object obj : sd) {	
		Map.Entry<Integer, Student> as = (Map.Entry<Integer, Student>)obj;
		System.out.println(as);
		
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值