1.集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充
2.特点
性能高
容易扩展和修改
3.Conllection的常用子类
list接口可以存放任意的数据,而且在List接口中的内容是可以重复的
List(ArrayList子类)
public class ListDemo1 {
public static void main(String[] args) {
List<String>lists = null; //定义集合
lists = new ArrayList<String>();
lists.add("A");//添加集合
lists.add("B");
lists.add("A");
for (int i = 0; i <lists.size(); i++) {
System.out.println(lists.get(i));
}
lists.remove(0);//移除第一项
System.out.println("删除之后————————");
for(int i = 0 ;i <lists.size();i++){
System.out.println(lists.get(i));
}
System.out.println( "集合是否为空"+ lists.isEmpty());//判断集合是否为空
System.out.println("查询B是否存在"+lists.indexOf("B"));
//返回是否包含该元素,如果包含则返回该元素的索引。。不存在,则返回-1
}
}
(vector子类)
public class ListDemo02 {
public static void main(String[] args) {
List <String> lists = null;
lists = new Vector<String>();
lists.add("A");
lists.add("B");
for (int i = 0; i < lists.size(); i++) {
System.out.println(lists.get(i));
}
}
}
区别
Set
set接口不能加入重复元素,但可以排序
散列存放 HashSet
有序存放 TreeSet
public class SetDemo1 {
public static void main(String[] args) {
Set<String> s = null;
s = new TreeSet<String>();
s.add("C");
s.add("D");
s.add("A");
s.add("B");
s.add("E");
s.add("F");
s.add("G");
System.out.println(s);
}
}
Queue
4.Iterator接口
1.集合输出的标准操作
2.迭代输出,将元素一个一个的输出,如有内容则取出
public class IteratorDemo01 {
public static void main(String[] args) {
List<String> lists = new ArrayList<String>();
lists.add("A");
lists.add("B");
lists.add("C");
lists.add("D");
lists.add("E");
lists.add("G");
lists.add("H");
Iterator<String> iter = lists.iterator(); //定义Iterator接口
while (iter.hasNext()) {//循环的输出
String str = iter.next();
if ("A".equals(str)) {
iter.remove(); //删除。。不能通过集合来进行删除
}else{
System.out.println(str);
}}
}
}
5.Map集合
1.保存形式 key-->value的保存方式
例: 幻幻 1163534699
2.常用子类
HashMap 无序存放,key不允许重复
Hashtable 无序存放,key不允许重复
public class MapDemo01 {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
map.put("key1", "demayixiya");
map.put("key2", "de");
map.put("key3", "ma");
map.put("key4", "xi");
map.put("key5", "ya");//添加数据。。键和值
Set<String>s = map.keySet();//将所有的键打印出来
Iterator<String> i = s.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
//获取所有的value
Collection<String> c = map.values();
i = c.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
}
获取当前的键和value
String str = map.get("key1");//获得当前的键
System.out.println(str); //通过键来找到所对应的值
获取全部的键和value
public class MapDemo3 {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
map.put("key1", "demayixiya");
map.put("key2", "de");
map.put("key3", "ma");
map.put("key4", "xi");
map.put("key5", "ya");//添加数据。。键和值
//获取全部的键和内容
Set<String> s = map.keySet();
//
Iterator<String> i = s.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
Collection<String> c = map.values();
i= c.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}
}
百度云源码http://pan.baidu.com/s/1E6n9O