Java .util 包下:(数据多了用对象储存,对象多了用集合储存)
-->Collection<E>:线性数据结构
常用结构 --> List Set -->Map(不实现Collection接口)
| | |
有序 可重复 无序 不重复(重复则覆盖) (key value)映射 key不重复
-->ArrayList (不同步)、LinkList(不同步)、Vector (同步)
-->HashSet、TreeSe
-->HashMap HashTable TreeMap
List:顺序为存储顺序,可以通过<下标>访问。
一些常用方法:1.remove(element/index); 按元素删除或者按下标删除
2.get(index); 得到该下标元素
3.在表头部或尾部添加元素 addFirst(); addLast();
4.双向遍历
//双向遍历 后序 前序
while(it.hasNext()){
System.out.print(it.next()+" ");
}
while(it.hasPrevious()){
System.out.print(it.previous()+" ");
}
Set: 集合中的对象是无序的,不能像数组那样根据下标遍历,可以通过迭代方式遍历.
Iterator迭代器:是获取集合中元素的过程,实际上帮助获取集合中的元素
//Set 测试Set
public void testSet(){
/**
* set 无序 不重复
* HashSet TreeSet
*/
Set set = new HashSet();
set.add(1);
set.add(2);
set.add(100);
set.add(4);
set.add(100);
System.out.println("set--size=="+set.size());
//从set上获取迭代器
Iterator it = set.iterator();
//遍历
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
常用方法:(-->TreeSet)
1. set1.remove(element);删除某元素
如果该元素不存在,则System.out.println("delete..."+set1);则打印false
2.查找某元素,即该集合包含某元素,contains();
3.A∪B a.addAll(b);
4.A-B a.removeAll(b);
5.A∩B a.retainAll(b)
6.其他方法
//得到first() last() 元素
System.out.println(treeSet.first());
//返回给定元素的前面的元素 tailSet()-〉返回给定元素后面的集合
treeSet.headSet(7);
//lower比给定元素小的最大元素 higher()->给定元素右侧相邻元素
System.out.println(treeSet.lower(18));
//pollFirst()删除并显示第一个元素
System.out.println(treeSet.pollFirst());
//celling()小于等于该元素.floor()大于等于该元素
Map :(Key-value)键值对,遍历Map时可以先用迭代器得到key,再通过key与value的对应得到value
Map map = new HashMap();
map.put(1, "aaa");
map.put(2, "bbb");
map.put(3,"ccc");
map.put(2,"ddd");
System.out.println(map.size());
Set set = map.keySet();
//遍历set
Iterator it = set.iterator();
while(it.hasNext()){
Object key = it.next();
Object value = map.get(key);
System.out.println("key="+key+" value="+value);
}
}
数组:保存同一种类型,大小一经给定不能再更改,(可以再新创建一个同一种类型的新数组,保存数据后在赋值给原来需要改变数组的大小的数组);
集合:创建时候可以不需要给定集合 大小,可以保存不同类型的数据(可以混存整形,浮点,对象,字符、字符串等)。