对象数组:可以存储(引用类型)的数组
集合:
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 的迭代顺序;特别是它不保证该顺序恒久不变)
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有序