Java常用集合学习总结
一 数组
数组可以存储基本数据类型和对象的一种容器,长度固定,所以不适合在对象数量未知的情况下使用。
Arrays : 用于操作数组对象的工具类,里面都是静态方法。
Arrays.asList:把Array 转换成 List,可以作为其他集合类型构造器的参数。
private static void arrayToList() { String[] arr = {"Hello","Hi"};
List<String> list = Arrays.asList(arr);
System.out.println(list);
}
Arrays.binarySearch:在一个已排序的或者其中一段中快速查找。
Arrays.copyOf:扩大数组容量又不改变它的内容
Arrays.copyOfRange:可以复制整个数组或其中的一部分。
Arrays.deepEquals、Arrays.deepHashCode:Arrays.equals/hashCode的高级版本,支持子数组的操作。
Arrays.equals:如果你想要比较两个数组是否相等,应调用这个方法而不是数组对象中的 equals方法(数组对象中没有重写equals()方法,所以这个方法之比较引用而不比较内容)。
Arrays.fill:用一个给定的值填充整个数组或其中的一部分。
Arrays.hashCode:用来根据数组的内容计算其哈希值(数组对象的hashCode()不可用)。
Arrays.sort:对整个数组或者数组的一部分进行排序。也可以使用此方法用给定的比较器对对象数组进行排序。
Arrays.toString:打印数组的内容。
***********************************************************************************************************************************************************************************************************
二 List
List 对象有序, 可重复,
List 拥有一系列和索引相关的方法,查询速度快,插入删除数据速度慢。
- ArrayList:底层使用的是数组结构,特点:查询速度快,增删操作较慢,而且线程不同步.
常用方法:add
,addAll
,remove
,indexOf
,subList
,c
ontains
,isEmpty
… - LinkedList
***********************************************************************************************************************************************************************************************************
三 Set
set 无序 不重复
Set 集合中的对象不按特定的方式排序,只是简单地把对象加入集合中
HashSet类(散列存放) Java.util.HashSet类实现了Java.util.Set接口
TreeSet(有序存放) 描述的是Set的一种变体——可以实现排序等功能的集合
public class TestTreeSet
{
public static void main(String [] args)
{
TreeSet ts=new TreeSet();
ts.add("orange");
ts.add("apple");
ts.add("banana");
ts.add("grape");
Iterator it=ts.iterator();
while(it.hasNext())
{
String fruit=(String)it.next();
System.out.println(fruit);
}
}
}
TestTreeSet
***********************************************************************************************************************************************************************************************************
四 Map
- HashMap
基于哈希表的 Map 接口的实现,存储键值对,键是唯一的,允许使用 null 值和 null 键,非同步(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同),同步可以使用Map m = Collections.synchronizedMap(new HashMap(...));
常用方法:- 添加。 put(key,value):当存储的键相同时,新的值会替换老的值,并将老值返回。如果键没有重复,返回null。 void putAll(Map);
- 删除。 void clear():清空 value remove(key) :删除指定键。
- 判断。 boolean isEmpty(): boolean containsKey(key):是否包含key boolean containsValue(value) :是否包含value
- 取出。 int size():返回长度 value get(key) :通过指定键获取对应的值。如果返回null,可以判断该键不存在。 当然有特殊情况,就是在hashmap集合中,是可以存储null键null值的。
Collection values():获取map集合中的所有的值。 - 遍历Map的方式:
1、将map 集合中所有的键取出存入set集合。
Set<K> keySet() 返回所有的key对象的Set集合,再通过get方法获取键对应的值。
2、 values() ,获取所有的值.
Collection<V> values()不能获取到key对象
3、 Map.Entry对象 推荐使用 重点
Set<Map.Entry<k,v>> entrySet() 将map 集合中的键值映射关系打包成一个对象。
Map.Entry对象通过Map.Entry 对象的getKey,getValue获取其键和值。
- HashTable
底层是哈希表数据结构,不可以存入null键null值,是线程同步的.
Hashtable 的实例有两个参数影响其性能:初始容量
和加载因子
Java常用集合学习总结的更多相关文章
- ------------------java collection 集合学习 ----小白学习笔记,,有错,请指出谢谢
<!doctype html>java对象集合学习记录 figure:first-child { margin-top: -20px; } #write ol, #write ul { p ...
- Java常用集合笔记
最近事情比较少,闲暇之余温习巩固一下Java的一些基础知识,并做一些笔记, Java常用集合, 主要参考的这篇文章:Java常用集合 ArrayList/Vertor 1. ArrayList 的主要 ...
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- JAVA常用集合源码解析系列-ArrayList源码解析(基于JDK8)
文章系作者原创,如有转载请注明出处,如有雷同,那就雷同吧~(who care!) 一.写在前面 这是源码分析计划的第一篇,博主准备把一些常用的集合源码过一遍,比如:ArrayList.HashMap及 ...
- java常用集合详解 contains
java集合是对常用数据集合的封装,差不多就是数组吧,验证某个元素是否在数据集合里,最原始的方法是,用个循环,"某个元素"与数据集合中的每个元素逐个进行比较. java 对常用的一 ...
- JAVA 常用集合接口List、Set、Map总结
java中频繁使用List.Set.Map接口,将其总结如下 它们的继承与实现关系如下: Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└ ...
- 链表与哈希表基本概念及Java常用集合
-链表- 是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个 ...
- Java图书管理系统(用Java常用集合实现)
图书管理系统 一.需求说明 1.功能:登录,注册,忘记密码,管理员管理,图书管理. 2.管理员管理:管理员的增删改查. 3.图书管理:图书的增删改查. 4.管理员属性包括:id,姓名,性别,年龄,家庭 ...
- java常用集合总结
1.线程安全 线程安全就是说多线程访问同一代码,不会产生不确定的结果. 2.List类和Set类List类和Set类是Collection集合接口的子接口.Set子接口:无序,不允许重复.List子接 ...
随机推荐
- poj 2945 Find the Clones
https://vjudge.net/problem/POJ-2945 题意: 给出n个长度相同的DNA序列,如果一个DNA序列出现过两次,那么就有说明它被复制了一次.问被复制0次,1次,2次--n- ...
- SpringBoot(一):使用eclipse/idea创建springboot helloword工程
eclipse如何创建spring boot工程: 第一步:首先打开eclipse,找到图中的下图的中“下三角”符号,选中"working sets"(表示将会把eclipse中的 ...
- Oracle:常用的一些基本操作
表操作 查看系统中当前用户所有表: select * from user_tables;select * from user_indexs;select * from user_triggers; s ...
- spring 依赖注入时,什么时候会创建代理类
问题来源 以前一直有个疑惑,为什么我创建的controller中注入的service类有时候是代理类,有时候是普通javabean,当时能力不够,现在已经有了点经验就大胆跟了跟源码,看看到底咋回事. ...
- ORA-09925: Unable to create audit trail file带来的sqlplus / as sysdba无法连接
SQL> show parameter pfile; /picclife/app/oracle/product/11.2.0/dbhome_1/dbs/spfilehukou.ora SQL&g ...
- fiddler实现手机抓包
对fiddler相关配置 1.允许fiddler捕获http协议,打开fiddler客户端,菜单框选择Tools->Options->HTTPS,勾选图中三项 2.允许远程连接,Tools ...
- elasticsearch logstash jdbc 配置 增量更新
环境前提: centos 6.5 x64 jdk 1.8 elasticsearch 6.1.4 logstash 6.1.4 kibana 6.1.4 mysql 5.x 保证上面软件已经安装,并且 ...
- Python更新pip出现错误解决方法
Python更新pip出现错误解决方法 更新pip python -m pip install --upgrade pip 查看时报错 解决方法 在命令栏(即win+r)输入:easy_install ...
- STM32 - SYSTICK(系统滴答定时器)
SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15).在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基.例如,为多个任务许以不同数目 ...
- NOIP2015-D2T3运输计划
题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球. 小 P 掌管一家 ...