JAVA总结(数据结构--集合)

数据结构集合:

JAVA总结(数据结构--集合)_第1张图片
JAVA总结(数据结构--集合)_第2张图片

集合:
特点:可变长度

Collection接口:
1、子接口(List)
特点:有序、可重复
实现类:ArrayList
1、添加:add(Object obj)
add(int i,Object obj)
addAll(Collection c)
addAll(int i,Collection c)
2、修改:set(int i,Object newObj)
3、删除:remove(int i)
remove(Object obj)
removeAll(Collection c)
retainAll(Collectoin c)仅在列表中保留指定collection中所包含的元素
clear()
4、查询:get(int i)根据下标查询元素,返回元素
contains(Object obj)查询列表中是否包含指定元素,包含返回true
containsAll(Collection c)查询列表中是否包含指定的多个元素,全部包含返回true
indexOf(Object obj)查询指定元素第一次出现的下标,返回下标索引,没有该元素返回-1
lastIndexOf(Object obj)查询指定元素最后一次出现的下标,返回下标索引,没有该元素返回-1
isEmpty()判断列表是否为空,为空返回true
5、序列遍历:
使用for循环
for(int i=0;ilist.get(i);
}
使用foreach循环
使用iterator迭代器
it.hasNext() 如果有下一个元素,返回true
it.next() 返回下一个元素
it.remove() 删除迭代器返回的最后一个元素
    
6、其他方法:
获取长度:size()
subList(int start,int end)截取集合,从下标start(包含)到下标(不包含)end截取
toArray()把列表转为数组,返回的是Object[]
把数组转为List集合,Array.asList(arr);

2、子接口(Set)
特点:无序、不可重复
实现类:HashSet
1、添加:add(Object obj)
addAll(Collection c)
2、修改:set中没有修改的方法,可以间接修改,先删除再添加
3、删除:remove(Object obj)
removeAll(Collection c)
retainAll(Collection c) 仅保留 set 中那些包含在指定 collection 中的元素
clear() 清除所有元素
4、查询:contains(Object obj)查询set中是否包含指定元素,包括返回true
isEmpty() 判断set是否为空,为空返回true
containsAll(Collection c) 查询set中是否包含指定的多个元素,全部包含返回true
遍历
使用foreach循环
使用iterator迭代器
it.hasNext() 如果有下一个元素,返回true
it.next() 返回下一个元素
it.remove() 删除迭代器返回的最后一个元素

Set和List的区别

  • 1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

  • 2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>

  • 3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector>









你可能感兴趣的:(Java)