java map堆栈_java中List、Map、Set、Stack、Queue、Collections等的使用

java中List、Map、Set、Stack、Queue、Collections等的使用

List

创建方法: Listlist=new ArrayList<>();

add(val): 添加元素。

get(index): 获取元素。

remove(index): 删除元素。

remove(Object o): 按照元素内容删除 {eg:list.add("marry") ; list.remove(0)==list.remove("merry");}。

contains(Object o): 返回true/false 表示是否包含摸个元素。

set(index,element): 将下标为index的元素替换为element。

add(index,element): 将element插入到第index位置,然后将后面元素后移一位。

indexOf(Object o):返回元素的第一个位置

lastIndexOf(Object o):返回元素的最后一个位置

subList(fromindex,toindex):生成一个新的List{eg:phone=phone.subList(1, 4);利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3 }

size():返回List的长度。

equals(List list):判断两个list中的元素是否相同。

isEmpty():判断List是否为空。

iterator():返回Iterator对象{eg:Iterator iterator = list.iterator(); iterator.next() :获取下一个元素 }

toString(): 将集合转换为字符串,并返回转化后的字符串。

toArray(): 将集合转换为数组,并返回转化后的数组。

类型转换:Listlst=new ArrayList<>();

for(String string:person){ lst.add(StringBuffer(string));

去重:

Listlst1=new ArrayList<>();

Listlst2=new ArrayList<>();

for (String s:lst1)

{

if (Collections.frequency(lst2, s)<1)

{

lst2.add(s);

}

}

Map

put(key,value):向map集合中添加Key为key,Value为value的元素,当添加成功时返回null,否则返回value。

就是说Map集合中的Key是不能重复的,这就类似于Set集合中元素不能重复,但是Map集合中的Value是可以重复。

putAll(Map m):向map集合中添加指定集合的所有元素 {eg: map1.putAll(map2);}

clear(): 把map集合中所有的键值删除 .

containsKey(Object key):检出map集合中有没有包含Key为key的元素,如果有则返回true,否则返回false。

containsValue(Object value): 检出map集合中有没有包含Value为value的元素,如果有则返回true,否则返回false。

entrySet():返回map到一个Set集合中,以map集合中的"Key=Value"的形式返回到set中。 {eg: Set set = map.entrySet();}

equals(Object o):判断两个Map是否相等

get(Object key): 根据map集合中元素的Key来获取相应元素的Value .

int hashCode(): 返回map集合的哈希码值 {eg: hashcode = map1.hashCode();}

isEmpty(): 检出map集合中是否有元素,如果没有则返回true,如果有元素则返回false .

keySet(): 返回map集合中所有Key .{eg: Set set = map.keySet() ;}

remove(Object key): 删除Key为key值的元素 .

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

values():返回map集合中所有的Value到一个Collection集合 {eg:Collections col = map.values(); }

Set

Set test = new TreeSet<>();

add(val):向集合中添加元素

clear():去掉集合中的所有元素

contains(val):判断集合中是否包含某个元素

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

iterator():  主要用于递归集合,返回一个Iterator()对象

remove(Object o):从集合中去掉特定对象

size():返回集合大小

HashSet类

不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也可能发生变化;

HashSet不是同步的;

集合 元素可以是null;

当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode方法来得到该对象的hashCode值,然后根据该hashCode值决定该对象在HashSet中的存储位置。如果有两个元素通过equals方法比较true,但它们的hashCode方法返回的值不相等,HashSet将会把它们存储在不同位置,依然可以添加成功。也就是说。HashSet集合判断两个元素的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode方法返回值也相等。靠元素重写hashCode方法和equals方法来判断两个元素是否相等,如果相等则覆盖原来的元素,依此来确保元素的唯一性

LinkedHashSet类HashSet还有一个子类LinkedList、LinkedHashSet集合也是根据元素的hashCode值来决定元素的存储位置,但它同时使用链表维护元素的次序,这样使得元素看起来是以插入的顺序保存的,也就是说当遍历集合LinkedHashSet集合里的元素时,集合将会按元素的添加顺序来访问集合里的元素。输出集合里的元素时,元素顺序总是与添加顺序一致。但是LinkedHashSet依然是HashSet,因此它不允许集合重复。

TreeSet类

TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态。

TreeSet内部实现的是红黑树,默认整形排序为从小到大。

与HashSet集合相比,TreeSet还提供了几个额外方法:

Comparator comparator():如果TreeSet采用了定制顺序,则该方法返回定制排序所使用的Comparator,如果TreeSet采用自然排序,则返回null;

Object first():返回集合中的第一个元素;

Object last():返回集合中的最后一个元素;

Object lower(Object e):返回指定元素之前的元素。

Object higher(Object e):返回指定元素之后的元素。

SortedSet subSet(Object fromElement,Object toElement):

返回此Set的子集合,含头不含尾;

SortedSet headSet(Object toElement):返回此Set的子集,由小于toElement的元素组成;

SortedSet tailSet(Object fromElement):返回此Set的子集,由大于fromElement的元素组成;

输出的集合都是有序的

Stack

boolean empty()测试堆栈是否为空。

Object peek( )查看堆栈顶部的对象,但不从堆栈中移除它。

Object pop( )移除堆栈顶部的对象,并作为此函数的值返回该对象。

Object push(Object element)把项压入堆栈顶部。

int search(Object element)返回对象在堆栈中的位置,以 1 为基数。

Queue

add(val)增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常

remove()移除并返回队列头部的元素    如果队列为空,则抛出一个NoSuchElementException异常

element()返回队列头部的元素             如果队列为空,则抛出一个NoSuchElementException异常

offer(val)添加一个元素并返回true       如果队列已满,则返回false

poll()移除并返问队列头部的元素    如果队列为空,则返回null

peek()返回队列头部的元素             如果队列为空,则返回null

put(val)添加一个元素                      如果队列满,则阻塞

take(val)移除并返回队列头部的元素     如果队列为空,则阻塞

Collections

Collections类里面包括动态、有序、可变大小的一维数组Vector与ArrayList。

Vector的使用如下

vector.add(6);:单纯的add表示从结尾加入元素

vector.size():size()能求出vector的所含元素的个数

vector.remove(1);:remove(1)表示删去第1个元素,注意计数从0开始

vector.remove(vector.lastElement());:删去最后一个元素

vector.add(0, 1.8888);:在第0个位置 加入1.8888这个元素

vector.set(0, "a");:把第0个位置这个元素 改为a

ArrayList使用方法

ArrayList arraylist = new ArrayList();

1. arraylist.add(1.0);:单纯的add表示从结尾加入元素

2. arraylist.size();:size()能求出所含元素的个数

3. arraylist.remove(1);:remove(1)表示删去第1个元素,注意计数从0开始

4. arraylist.remove(arraylist.size() - 1);:删去最后一个元素

5. arraylist.add(0, 1.8888);:在第0个位置 加入1.8888这个元素

6. arraylist.set(0, 9.0);:把第0个位置这个元素 改为9.0

7. Collections.sort(arraylist);:如果arraylist不是抽象类型,则支持排序

8. arraylist.get(i);:得到第i个位置的元素值,注意从0开始计数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值