java集合类(二)
第十六天知识点总结
一、泛型
泛型:java jdk 1.5 新特性。
泛型的好处:
1.运行时的错误提前到编译时。
2.避免无谓的强制类型转换
自定义方法泛型:自定义泛型就是一个数据类型的占位或一个数据类型变量,一般用T或E来做这个占位符号,占位符号可以随意写,但是必须遵守标识符的命名规范
方法泛型的格式:
<占位符> T : 定义了一个泛型
举例:
Public static <T>T test(T s){
Return s;
}
如果你传进去的是一个基本数据类型:接收的时候应该用它的包装类来接收.
int Integer short Short double Double float Float byte Byte
boolean Boolean long Long char charactor
自定义数组的工具类
定义一个泛型类:
定义格式
class 类名<声明自定义的泛型> { }
泛型类的使用注意点:
1.泛型类上定义的自定义泛型的类型是在创建这个类对象时确定的。
2.如果一个自定义泛型的类,在创建对象时没有指定,默认为Object类型。
3.静态方法不能够使用类删自定义的泛型,必须在方法上定义一个泛型。
泛型接口:
泛型接口的定义方式:
Interface 接口名<声明自定义的泛型> { }
接口泛型的使用注意点:
1.接口上自定义的泛型在实现接口的时候被指定的
2.如果实现接口是没有指定接口 ,那么就会默认为Object
3.需要在创建接口实现类对象是指定数据类型,
那么需要格式:class 类名<声明自定义泛型> implements 接口<声明自定义泛型>
判断下列写法是否错误:
ArrayList<String> list1 = new ArrayList<String>(); //true
ArrayList<String> list2 = new ArrayList<Integer>();//false
ArrayList<Integer> list3 = new ArrayList<String>();//false
1. ArrayList list4 = new ArrayList<String>();//true
2. ArrayList<String> list5 = new ArrayList();//true
推荐使用第一种
二、Map集合
Map集合 接口 双列集合 key:value 类似于OC中的字典
特点:存储数据是以键和值的方式,键不允许重复,值可以重复
-----> HashMap 基于哈希表来存储数据的
存储原理也使用哈希表来存放:
往HashMap添加了元素,首先会调用键的hashCode方法获得一个哈希值,然后经过运算获取一个位置。
情况一:如果位置上没有元素,那么直接将该元素存放在此位置。
情况二:如果位置上有元素,那么还会调用元素的equals方法与位置上的元素做比较,如果返回的是true,那么就被视为相同的键,就不存了,反之返回的是false,那么就可以存放该元素。
-----> TreeMap:基于二叉树的结构存储,特点:以键来做自然排序
使用注意点:
1.往TreeMap里添加元素时,如果元素的键具备自然排序功能,那么就会通过自然排序进行排序。
2.往TreeMap里添加元素时,如果元素的键不具备自然排序功能,键所属的类必须要实现Comparable接口,把这个键的比较规则定义在compareTo方法中。
3.往TreeMap里添加元素时,如果元素的键不具备自然排序功能,也没有实现Comparable接口,创建TreeMap的时候给他一个比较器
结构:
Class 类名implements Compartor 接口{
}
键的比较规则定义在compare方法中。
-----> HashTable :HashMap 一样的使用,线程安全。访问比较慢(了解)
Map集合的使用注意点:
1.键可以是任意对象,值也可以是任意对象
2.Map集合中是可以嵌套list集合
(重点掌握)Map集合常用的方法:
添加:put(K key, V value);
putAll(Map <?extends K,?extends V> m);
删除:clear();
remove(Object key);
获取:get(Object key);
Size();
判断:isEmpty();
containsKey(Object key);
containsValue(Object value);
Map集合的遍历方式:
通过迭代器来遍历:
entrySet();
keySet();
values();
Map.Entry: 接口:提供给用户来操作map集合
getKey(); 获取键
getValue();获取值
setValue();更改值
java集合类(二)的更多相关文章
- java集合类(二)List学习
接上篇 java集合类(一) List接口继承了Collection接口和Iterable接口,即同样含有Collection和 Iterable的特性,还有方法,其基本方法有: 1)有关添加: b ...
- 做JavaWeb开发不知Java集合类不如归家种地
Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...
- 【转载】Java集合类Array、List、Map区别和联系
Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...
- Java集合类简单总结(重学)
java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...
- Java集合类中的哈希总结
JAVA集合类中的哈希总结 目 录 1.哈希表 2.Hashtable.HashMap.ConcurrentHashMap.LinkedHashMap.TreeMap区别 3.Hashtable.Ha ...
- java集合类(三)About Iterator & Vector(Stack)
接上篇:java集合类学习(二) Talk about “Iterator”: 任何容器类,在插入元素后,还需要取回元素,因为这是容器的最基本工作.对于一般的容器,插入有add()相关方法(List, ...
- 一张图让你看清Java集合类(Java集合类的总结)
如今关于Java集合类的文章非常多,可是我近期看到一个非常有意思图片,基本上把Java集合的整体框架都给展现出来了.非常直观. watermark/2/text/aHR0cDovL2Jsb2cuY3N ...
- java 集合类Array、List、Map区别和优缺点
Java集合类主要分为以下三类: 第一类:Array.Arrays 第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Array ...
- Java集合详解8:Java集合类细节精讲
今天我们来探索一下Java集合类中的一些技术细节.主要是对一些比较容易被遗漏和误解的知识点做一些讲解和补充.可能不全面,还请谅解. 本文参考:http://cmsblogs.com/?cat=5 具体 ...
随机推荐
- GT 940M 到底怎么样! 768的可以 1080的不要用了
而对于目前的市场来看,NVIDIA独显无疑是占据了产品端的绝对主力,9系列独显也已经全面上市,但除了大家熟悉的GTX级之外,入门级的更新也同样对入门级玩家有着至关重要的意义,其中最具代表性的莫过于今天 ...
- 连HTTPS都有漏洞,这么不安全的互联网我们还要继续用吗?
转载自 http://www.huxiu.com/article/45302/1.html 10月24日和25日,虎嗅君参加了GeekPwn(极棒)安全极客嘉年华活动. 嗯...说是嘉年华,其实就 ...
- 新冲刺Sprint3(第一天)
一.Sprint介绍 sprint2已经结束了,现在准备进行新一轮的冲刺--sprint3.现在简单说下sprint3的情况,正在进行的有更新商品图片和浏览商家相关信息,还有就是APP测滑栏的完善.准 ...
- 【转】Python 中map、reduce、filter函数
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- spring-实现配置文件读取
spring 实现配置读取 Java 的配置读取方式一般是采用java.utils.Properties 或是apache的Configuration工具:然而 spring 框架内置了配置文件的读取 ...
- Windows 7上打开IE浏览器报错:无法启动此程序,因为计算机中丢失api-ms-win-core-path-|1-1-0.dll。尝试重新安装该程序以解决此问题。
Windows 7上打开IE浏览器报错: 1. 重新安装IE11也没有解决该问题 2. 在其他Win7电脑也搜索不到该文件,但是能使用IE浏览器. 3. 从网上找了一个dll文件,注册时提示如下图
- java 泛型接口示例
/* * 泛型接口 */ interface Tool<t> { public void show(T t); //泛型方法 public <e> void print(E e ...
- visual.studio.15.preview5 编译器
前段时间微软更新了新版开发工具visual studio 15 preview5,安装后连文件结构目录都变了,想提取编译器还找不到. 不是原来的VC\BIN目录,已迁移到IDE\MSVC\14.10. ...
- TMS320C54x系列DSP指令和编程指南——第1章 汇编语言工具概述
第1章 汇编语言工具概述 TMS320C54x DSP的汇编语言开发工具包括: ■ Assembler ■ Archiver ■ Linker ■ Absolut ...
- 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局
这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...