集合可以看作是一个容器,如白色的杯子可以看作是一个集合。对于集合中的个个对象很容易将其存放到集
中,也很容易将其从集合中取出来,还可以将其按照一定的顺序进行摆放。java中提供了不同的集合类,这些类具有不同的存储对象的方式,并提供了相应的方法以便对集合进行遍历,添加,删除以及查找指定的对象。
?
在Java中,集合框架是线性的数据结构,最常用的是Map ? List ?Set。
?
集合框架主要使用如下:
?
public class Test {
?
public static void main(String[] args) {
Test test = new Test();
test.testList();
}
?
public void testList() {
/**
* list 可重复 有序(元素添加的先后顺序)?
*/
ArrayList list = new ArrayList();
list.add(1);
list.add(10);
list.add("abc");
list.add(10);
?
System.out.println("大小:" + list.size());
// 遍历list
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
? ? ? ?
}
}
}
?
输出结果:list的长度为:4
? ? ? ? ? ? ? ? ?1 2 abu 2?
?
List
通过实现实现类:ArrayList创建对象
添加数据:add函数
删除数据:remove
拿到对应位置的数据:get
修改数据:set(下表,值)
使用场景:当你不确定需要存储的数据长度的时候,可以通过队列存储,队列可以根据数据多少改变长度
?
特点:
数据是有序
数据是可以重复
队列长度是可以改变
?
?
public class Test {
?
public static void main(String[] args) {
Test test = new Test();
test.testSet();
}
public void testSet() {
Set set = new HashSet();
?
set.add(1);
set.add(13);
set.add("abu");
set.add(13);
// set.add(new JButton());
?
System.out.println("set的长度为:" + set.size());
?
java.util.Iterator it = set.iterator();
// 遍历
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
} ? ? ?
}
?
运行结果:set的长度为:3
? ? ? ? ? ? ? ? ?1 abu 13
?
Set
特点:1.数据是无序
2.存储的数据不能重复
3.拿取数据需要通过集合的迭代器获取
?
获取迭代器的方式:Set.iterator();
?
public class Test {
?
public static void main(String[] args) {
Test test = new Test();
test.testmap();
}
public void testmap() {
?
// 无序 不重复 HashMap TreeMap
Map map = new HashMap();
?
map.put(1, 13);
map.put(22, 13);
map.put(13, "abu");
map.put(22, "abu");
map.put("abu", 13);
?
System.out.println("map的长度为:" + map.size());
?
Set set = map.keySet();
?
java.util.Iterator it = set.iterator();
?
while (it.hasNext()) {
Object key = it.next();
Object value = map.get(key);
System.out.println("key=" + key + " ? value=" + value);
}
}
}
?
运行结果:map的长度为:4
? ? ? ? ? key=1 ? value=13
? ? ? ? ? key=abu ? value=13
? ? ? ? ? key=22 ? value=abu
? ? ? ? ? key=13 ? value=abu
?
Map
存储方式:键值对方式存储数据
特性:1.map中键值对的键只能对应一个值
2.map中的键不能重复,如果添加了重复的键,那会替换掉之前的键对应的value内容
3.map中的键值是能为空
?
?
?
定义泛型时候,必须传入对应的引用类型,不能用基本数据类型