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

List

创建方法: List<String> list=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() : 将集合转换为数组,并返回转化后的数组。

类型转换 :List<StringBuffer> lst=new ArrayList<>();

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

去重

List<String> lst1=new ArrayList<>();

List<String> lst2=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<Integer> 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的使用如下

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

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

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

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

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

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

ArrayList使用方法

ArrayList<Double> arraylist = new ArrayList<Double>();

  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开始计数。

java中List、Map、Set、Stack、Queue、Collections等的使用的更多相关文章

  1. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

  2. JAVA中关于Map的九大问题

    通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提 ...

  3. Map java中的map 如何修改Map中的对应元素

    Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.         Map的接口         Map ...

  4. Java中遍历Map集合的四种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  5. java中遍历map对象的多种方法

    在Java中如何遍历Map对象   How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有ma ...

  6. java中遍历MAP,嵌套map的几种方法

    java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>();    map.put("us ...

  7. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  8. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  9. javascript 实现java中的Map

    javascript实现java中的Map,代码是在国外的一个网站上看到的(http://stackoverflow.com/questions/368280/javascript-hashmap-e ...

  10. Java中遍历map的四种方法 - 转载

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

随机推荐

  1. 玩转VSCode-完整构建VSCode开发调试环境

    随着VSCode的不断完善和强大,是时候将部分开发迁移到VS Code中了. 目前使用VS2019开发.NET Core应用,一直有一个想法,在VS Code中复刻VS的开发环境,同时迁移到VS Co ...

  2. Dubbo的应用

    导语:Dubbo是阿里巴巴的一个分布式服务的开源框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000 ...

  3. HTML中的表格标签

      表格是网页制作中使用最多的工具之一,在制作网页时,使用表格可以更清晰地排列数据.但是在实际制作过程中,表格更多用在网页布局的定位上.很多网页都是以表格布局的.这是因为表格在文本和图像的位置控制方面 ...

  4. XjhDemo 插入数据

    create database XjhDemo gouse XjhDemogo --商品类别Create table Sort( SortId int primary key identity(1,1 ...

  5. 力扣(LeetCode)整数形式的整数加法 个人题解

    对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组.例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]. 给定非负整数 X 的数组形式 A,返回整数 X+K 的 ...

  6. 力扣(LeetCode)求众数 个人题解

    给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] 输出: 3 ...

  7. Grid表格的js触发事件

    没怎么接触过Grid插件: 解决的问题是:点击Grid表行里的内容触发js方法弹出模态框,用以显示选中内容的详细信息. 思路:给准备要触发的列加上一个css属性,通过这个css属性来获取元素并触发js ...

  8. ES6的基础知识(一)

    1.ECMAScript 6.0(以下简称ES6). 2.ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的其中一种实现. 3.对ES6支持的浏览器:超过 90% ...

  9. vue常用指令总结

    一.vue指令 官网解释 指令 (Directives) 是带有 v- 前缀的特殊特性.指令特性的值预期是单个 JavaScript 表达式 (v-for 是例外情况).指令的职责是,当表达式的值改变 ...

  10. ceph中rbd的增量备份和恢复

    ceph中rbd的增量备份和恢复 ceph的文档地址:Ceph Documentation ​ 在调研OpenStack中虚机的备份和恢复时,发现OpenStack和ceph紧密结合,使用ceph做O ...