黑马程序员--Java笔记10--Collection集合、 Map集合、泛型

原创 2015年11月19日 13:20:45
------- android培训java培训、期待与您交流! ----------

集合

基本数据类型包装类

byte   short    int       long    float   double  char           boolean

Byte  Short  Integer  Long  Float  Double  Character  Boolean

基本数据类型-->字符串

1.基本数据类型+“”

2.用String类中的静态方法valueOf(基本数据类型)

字符串-->基本数据类型

1.使用包装类中的静态方法xxx parseXxx(“xxx”);

int/long/boolean parseInt/Long/Boolean(String str);

只有Charactor没有parse方法

2.如果字符串被Integer进行对象的封装,可使用另一个非静态方法intValue

3.用Integer的静态方法valueOf(String str)

十进制-->其他进制

1.String toBinaryString(int i);转二进制

2.String toOctalString(int i);转八进制

3.

String toHexString(int i);转十六进制

4.String toString(int i,int radix);radix进制

其他进制-->十进制

int parseInt(String str,int radix);radix进制的str转化为十进制

自动装箱,自动拆箱JDK1.5以后,自动装箱一个字节以内不再重新开辟空间,以外会重新开辟空间。

练习:对一个字符串中的数值进行从小到大的排序“20 93 4 -3 93 74 39

集合类:用于封装特有数据,存储个数不确定对象

特点:用于储存对象的容器,集合长度可变,不可以储存基本数据类型值

集合数组的区别:集合长度可变,数组长度固定;集合只存储对象,数组可存储基本数据类型。

集合框架的构成和分类

 

Collection接口


常见方法:

①:添加

boolean add(Object obj);添加时判断已存在则返回false

boolean addAll(Collection coll);

②:删除

boolean remove(Object obj);

boolean removeAll(Collection coll);

void clear();

③:判断

boolean contains(Object obj);

boolean containsAll(Collection coll);

boolean isEmpty();

④:获取

int size();

Iterator iterator();迭代器

该对象必须依赖于容器,是在容器中内部实现的,且实现方法不同

⑤:其他

boolean retainAll(Collection coll);取交集

Object toArray();将集合转成数组

ListSetCollection子接口)区别:

List:有序(存入和取出顺序一致),元素都有索引(角标),允许元素重复

Set:元素不能重复,无序

List

特有的常见方法:

①:添加

void add(index ,element);

void addAll(index,collection);

②:删除

Object remove(index );

③:修改

Object set(index ,element);

④:获取

Object get(index );

int indexOf(object);//不包含则返回-1

int lastIndexOf(object);

List subList(from,to)返回之间的部分

⑤:其他

在迭代器过程中,不要使用集合操作元素,容易出现异常,可以使用迭代器接口的子接口ListIterator来完成在迭代中对元素的更多操作

Iterator方法hasNext();  next();

List的实现类

Vector:内部是数组结构,同步的,增删查询都很慢(几乎不用)

ArrayList:内部是数组结构,是不同步的,替代了Vector,查询快

LinkedList:内部是链表结构,是不同步的,增删速度快

LinkedList方法

addFirst();//在链表前端添加

addLast();

getFirst();//获取但不移除,若链表为空,抛出NoSuchElementException

getLast();

removeFirst();//获取并移除,若链表为空,抛出NoSuchElementException

removeLast();

JDK1.6更新后对应上方的新方法:

offerFirst();

offerLast();

peekFirst();//获取但不移除,若链表为空,返回null

peekLast();

pollFirst();//获取并移除,若链表为空,返回null

pollLast();

Set

其接口中的方法和Collection一致

HashSet:内部数据结构是哈希表,是不同步的

TreeSet:可以对Set集合中的元素进行排序,是不同步的

哈希表判断元素是否相同:先判断哈希值(判断的是对象的HashCode方法),若相同,再判断内容(用equals方法);

练习

1.HashSet集合中存储Person对象,若姓名年龄相同视为同一元素

2.定义功能去除ArrayList中的重复元素

3.无序变有序,使用LinkHashSet

TreeSet

判断元素唯一性方式:返回值是0即相同元素,不存

对元素进行排序

方法一:让元素自身具备比较功能,元素需实现Comparable接口,覆盖compareTo方法;

方法二:让集合自身具备比较功能,定义类实现Comparator接口,覆盖compare方法,该类作为参数传递给TreeSet集合的构造函数。

如果自定义类实现了Comparable接口,并且TreeSet集合的构造函数中也传入了比较器,那么将以比较器的比较规则为准

TreeSet集合的底层是以二叉树进行排序的

练习:对字符串进行长度排序

二叉树结构


泛型JDK1.5以后出现的新特性,用于解决安全问题,是一个类型安全机制

好处:将运行时期出现的问题ClassCastException,转移到了编译时期,方便程序员解决问题,让运行时问题减少,安全,避免了强制转换的麻烦

格式:通过<>来定义要操作的引用数据类型

当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可

泛型限定

当类型不确定时,可用通配符“?”表示

上限:限定为E类型及其子类<? extends E>

下限:限定为E类型及其父类<? super E>

Map:

Map一次添加一对元素(双列集合,存储键值对),须保证键的唯一性

Collection一次添加一个元素(单列集合)

Map常用方法

①:添加

value put(key,value);返回前一个和key关联的值,如果没有返回null

②:删除

value remove(Object key);根据指定的key删除这个键值对

void clear();

③:判断

boolean containsKey(key)

boolean containsValue(value);

boolean isEmpty();

④:获取

value get(key);如果没有返回null

int size();获取键值对个数

Set keyset();返回此映射中的键的set视图

Set<Map.Entry<k,v>>  entrySet();返回此映射中的映射关系的set视图

Map集合元素取出方式

1.Set<k>  keyset:Map中所有的键存入到Set集合,因为Set具备迭代器

Map:集合取出原理:将map集合转成set集合,再通过迭代器取出

2.Set<Map.Entry<k,v>> entrySet:map集合中的映射关系存入到了set集合中,这个关系的数据类型就是Map.Entry

Map常用子类

Hashtable:底层数据结构哈希表,不允许nullnull值,线程同步,效率低

Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合

HashMap:底层数据结构是哈希表,允许nullnull值,线程不同步,效率高

TreeMap:底层数据结构二叉树,线程不同步,可以对Map中的键进行排序

哈希表排序的两个函数:hasCode;  equals;

HashMap中的键若存入两次不同的值,后面的值会覆盖上一个值

练习:“fdqavcbsacdfs”获取该字符串中每一个字母出现的次数,要求打印结果:a(2)b(1)...

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员--------java Collection、Map集合 、泛型

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 一、Collection 集合 1、Collection集合结构...

黑马程序员——Java语言基础——06.集合框架(2)泛型和Map集合

------- android培训、java培训、期待与您交流! ---------- 本节考点: 一、泛型限定,上限下限什么时候用 二、map和Collection的不同 三、Map两种...

黑马程序员_java_集合框架_Collection_List_Set_Map_泛型

 ------- http://www.itheima.com" target="blank">android培训、http://www.itheima.com" target="blank">...

黑马程序员---------泛型、Map集合、集合框架工具类

第1讲 1.1 泛型基本知识 泛型:JDK1.5版本以后出现新特性。用于解决安全问题,是一个类型安全机制。 好处:     1、将运行时期出现问题ClassCastException,转移到了编译时期...

黑马程序员——第七篇:Map集合、collection工具类

1、Map集合特点和Collection区别 1.  Map集合特点      A:映射键值对集合       B:存储对象的时候,存储1个键,存储1个值     ...

黑马程序员----Java集合框架学习笔记2 Map-工具类-泛型

------- android培训、java培训、期待与您交流! ---------- 1.Map Map 储存键值对,必须保证键的唯一性。 与Collection 区别:Map位双列集合,Coll...

黑马程序员——JAVA笔记之集合框架(泛型、Map等)

集合框架(泛型、Map等) 面向对象语言对事物的体现都是以对象的形式,所有未来方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 数组虽然也可以存储对象,但长度是固定的;集合...

黑马程序员________Java集合Map及其JDK1.5新特性泛型机制的学习笔记

------- android培训、java培训、期待与您交流! ----------         Map接口的子类特点是将对象成键值对的方式,成对存入集合,并且要保证键的唯一性...

黑马程序员--Java学习日记之集合(collection类与list接口)及泛型概述

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一,集合概念   之前我们存储大量的对象,可以使用数组:   但数组有两个缺陷:   1.其...

黑马程序员_java基础6-集合框架Collection和泛型

------- android培训、java培训、期待与您交流! ---------- @@(day14)Collection和泛型*********************************...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)