类集是java中极其重要的是一个特性
常用集合接口
1、 Collection接口,集合接口,用来存储一组对象,基于此接口又扩展了List(允许重复)、Set(不允许重复)等接口
2、 Map接口,键值对接口,用来存储键值对;Map.Entry接口,是Map接口中的内部接口,主要用于集合输出
3、 Iterator(迭代)接口,集合的输出接口,用来输出集合
基于List接口的集合类
1、 ArrayList(数组列表)
2、 LinkedList(链表列表)
操作如下
import java.util.List;
import java.util.ArrayList;
publicclass hello{
publicstaticvoid main(String args[])throws Exception{
//声明ArrayList对象,注意泛型
List<String> names =new ArrayList<String>();
//向List中添加对象
names.add("aa");
names.add("bb");
names.add("cc");
//输出对象
System.out.println(names);
//删除对象
names.remove("aa");
System.out.println(names);
//遍历List,并输出对象
for(int i=0; i<names.size(); i++){
System.out.println(names.get(i));
}
//使用for增强遍历list
for(String s : names){
System.out.print(s);
}
}
}
基于Set接口的集合类
1、 HashSet(散列存放)
2、 TreeSet(树型存放)
3、 SortedSet(排序集合)
Set集合的操作参考List
基于Map接口的集合类
1、 HashMap(散列存放)
2、 TreeMap(树型存放,可排序)
3、 SortedMap(排序Map,通过key进行排序)
a) Map接口使用put新增数据,使用get获取数据
b) Map的实例实际上是存储在Map.Entry对象中,所以要遍历Map对象需要通过entrySet()方法获取对象集合
import java.util.Map;
import java.util.HashMap;
publicclass hello{
publicstaticvoid main(String args[])throws Exception{
//声明HashMap类,HashTable是老的废弃了
Map<String, String> names =new HashMap<String, String>();
//向Map中新增键值对
names.put("101","ni");
names.put("102","hao");
names.put("103","ma");
System.out.println(names);
//查找键或值是否存在
if(names.containsKey("102")){System.out.println("contains key 102");}
if(names.containsValue("ma")){System.out.println("contains value ma");}
//遍历map集合
//map中的对象实际存储在Map.Entry对象中
//通过entrySet可以获取所有的Map.Entry对象
//map中的对象,通过getKey()/getValue()方法获取键、值
for(Map.Entry<String, String> item : names.entrySet()){
System.out.println(item.getKey()+"--->"+ item.getValue());
}
//使用增强for循环遍历key集合,并用get方法输出key对应的value
//获取key集合或者value集合用keySet()或values()方法
for(String key : names.keySet()){
System.out.println(key +" : "+ names.get(key));
}
for(String val : names.values()){
System.out.print(val +" ");
}
}
}
4、 Properties类,属性操作类,用于操作属性文件
a) 属性文件是.properties结尾的文件
b) 属性文件的内容为key=value键值对的方式存放
c) Properties是HashTable的子类,HashTable是过期的类,新的使用HashMap
import java.util.Properties;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
publicclass hello{
publicstaticvoid main(String args[])throws Exception{
//声明属性对象
Properties ps =new Properties();
//向属性对象添加键值对
ps.put("name","tiny");
ps.put("age","29");
ps.put("sex","male");
//声明文件对象
File f =new File("C:"+ File.separator +"AAA\\person.properties");
//将属性对象以字节流的方式存储到f文件中
ps.store(new FileOutputStream(f),"personproperties");
Properties psRead =new Properties();
//将f文件的内容加载到psRead属性对象中
psRead.load(new FileInputStream(f));
System.out.println(psRead);
//通过key读取属性值
System.out.println("name="+ psRead.getProperty("name"));
}
}