对象数组,集合,ArrayList,LinkedList,TreeSet,

来源:互联网 发布:台北房价知多少 编辑:程序博客网 时间:2024/05/21 07:07

对象数组:可以存储(引用类型)的数组
集合:
1数组和集合的区别?
1:长度的区别
数组长度:固定
集合长度:可变
2:存储数据类型的区别
数组:可以存储基本数据类型,也可以存储引用类型
集合:只能存储引用类型
3:存储元素的区别?
数组:只能存储同一种类型的元素 int[] arr = {“hello”,10,20,30…} ;
集合:可以存储多种类型的元素

获取集合的元素数:size()
获取数组的长度:length属性
获取字符串的长度:length()方法

集合(Colleciton)的高级功能:
boolean retainAll(Collection c):
交集功能:A集合对B集合取交集,交集的元素去A集合中,返回值boolean表示的是:A集合中的元素是否改变,如果改变了,返回true,否则,false

4集合的遍历:
1)toArray():将集合转换成数组,返回值是一个Object类型
2)集合的专有遍历方式:获取集合的迭代器
Iterator it = 集合对象.iterator() ;
while(it.hasNext()){//判断是否有下一个可以迭代的元素
//获取
String s = (String)it.next() ;
}
interface Iterator{
boolean hasNext();
Object next() ;
}
interface Collection extends Iterable{
}

interface List extends Collection{

}
class ArrayList<> implements List{

return new Itr();
class Itr implements Iterator {

}
}
5.ArrayList特点:
底层数据结构是数组,查询快,增删慢
线程不安全,效率高

6。LinkedList特点:
底层数据结构是链表,查询慢,增删快
线程不安全,效率高

7.set集合中的hashset
HashSet 元素顺序:元素唯一,但是无序(它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变)

  1. List集合:
    List集合是Colleciton集合子接口,就可以使用父接口中的迭代器

    List特点:
    元素是可以重复的,并且有序性(存储和取出一致)

                   遍历集合:

    1)toArray()
    2)迭代器功能:Iterator iterator()
    3)列表迭代器:ListIterator listIterator(); 里面添加元素的功能
    4)普通for循环,用size()和get(int index)相结合

9.TreeSet:
两个构造方法:
public TreeSet()
//构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。

TreeSet(Comparator<? super E> comparator)   构造一个新的空 TreeSet,它根据指定比较器进行排序

元素顺序:使用元素的自然顺序对元素进行排序,或者根据创建 set时提供的 Comparator进行排序,具体取决于使用的构造方法。

TreeSet集合特点:
1.元素唯一
2.元素有序

底层算法:二叉树
元素要求, 加入自定义JavaBean
对java中已有数据类型的存入:

10.HashSet与TreeSet的相同点与不同点
相同点:
单列集合,元素不可重复
不同点:
1. 底层存储的数据结构不同
HashSet底层用的是HashMap哈希表结构存储,而TreeSet底层用的是TreeMap树结构存储
2.存储时保证数据唯一性依据不同
HashSet是通过复写hashCode()方法和equals()方法来保证的,而TreeSet通过Compareable接口的compareTo()方法来保证的
3.有序性不一样
HashSet无序,TreeSet有序

阅读全文
0 0