基本数据类型对象+集合对象

1、基本数据类型对象包装类

常用操作之一:用于基本数据类型和字符串之间的转换

基本类型--->字符串

*基本类型+“”

*用String类中的静态方法ValueOf(基本数据类型值)

*用Integer类中的静态方法ValueOf(基本数据类型值)

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

*使用包装类中的静态方法parseInt()或其他parseLong()等等parseXxx()

*如果字符串被Integer进行对象的封装,可以使用另一个非静态方法,intValue(),经一个Integer对象转换成基本数据类型值。

Integer i=new Integer(“123”);

i.intValue(i);//基本数据类型

byte    Byte

short  Short

int  Integer

long Long

float Float

double  Double

char  Character

boolean Boolean

jdk1.5以后,自动装箱,如果装箱的是一个字节,那个该数据会被共享,不会重新开辟新空间

Integer x=127;

Integer y=127;

x==y;//true,如果是128以上则为false

2、集合类

*用于存储对象的容器

*集合的长度是可变的

*集合中不可以存储基本数据类型


集合容器因为内部的数据结构不同,有多种具体容器。不断的向上抽取,就形成了集合框架。

框架顶层Collection接口

Collection常用方法:

*增加

boolean add(Object obj);

boolean addAll(Collection coll)

*删除

boolean remove(Object obj);

boolean removeAll(Collection coll);//将两个集合中相同元素从调用removeAll的集合中删除

void clear();

*判断

boolean contains(Object obj);

boolean containsAll(Collections coll);

boolean isEmpty();判断集合是否有元素

*获取

int size();

Iterator  iterator();取出元素的方式:迭代器

该对象必须依赖于具体容器,因为每一个容器的数据结构都不同,所以该迭代器对象是在容器中进行内部实现的。

*其他

boolean retainAll(Collection coll);取交集  

Object [] toArray();集合转换成数组


Collection

|_List:有序(存入和取出顺序一致,元素都有索引。允许重复元素

|_Set:元素不重复,无序。


List:特有常见方法,有一个共性特点,都可以操作角标

*添加

void add(index,element);

void add(index,collection);

*删除

object remove(index);

*修改

object set(index,element);

*获取

Object get(index)

int indexOf(object);

int lastIndexOf(object)

List subList(from,to);

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

ListIterator可以实现在迭代过程中完成对元素的增删改查,注意只有list集合具备该迭代功能。

例子:

Iterator it=list.iterator();

while(it.hasNext()){

 Object obj=it.next();

if(obj.equas("abc"){

list.add("aad");//使用迭代器过程,集合操作了元素

}

}

List集合是可以完成对元素的增删改查

List:

|_Vector:内部是数组数据结构 ,是同步的,线程安全的。

|_ArrayList:内部是数组数据结构,是不同步的。替代了vector,查询速度快。

|_LinkedList内部是链表数据结构,是不同步的,增删元素的速度很快。

addFirst()   

addLast() 

jdk1.6

offerfist()

offerLast()

 getFist()  //获取但不移除,如果链表为空,则抛出NoSuchElementException

getLast() 

jdk1.6:peekFirst()获取但不移除,如果链表为空,则返回null

peekLast()

 removeFist()  //获取并移除,如果链表为空,则抛出NoSuchElementException

removeLast()

jdk1。6

pollFirst()获取但不移除,如果链表为空,则返回null

pollLast()

4、Set集合:元素不可以重复,是无序。

set接口中的方法和Collection一致。

|_HashSet内部数据结构是哈希表,是不同步的。

HashSet集合数据结构是哈希表,所以存储元素的时候,使用的元素的hasCode方法来确定位置,如果位置相同,在通过元素的equals来确定是否相同。

哈希表确定元素是否相同

1)判断的是两个元素的哈希值是否相同。如果相同,再判断两个对象的内容是否相同。

2)判断哈希值相同,其实判断的是对象的hashCode的方法。判断内容相同用的是equals方法。

注意:如果哈希值不同,是不需要判断equals。

HashSet的子类LinkedHashSet:有序的

|_TreeSet:内部是二叉树数据结构。可以对set集合中的元素进行排序,是不同步的。判断元素唯一性的方式:就是根据比较方法的返回结果,是否是0.是就是相同元素,不存入。

TreeSet对元素进行排序的方式之一,让元素自身具备比较功能,元素就需要实现Comparable接口,覆盖compareTo方法。

如果不要按照对象中具备的自然顺序排序,如果对象中不具备自然顺序,怎么办?

可以使用TreeSet集合的第二种排序方式:让集合自身具备比较功能。定义类实行Comparator接口,覆盖compare方法,将该类对象作为参数传递给Treeset集合的构造函数。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值