import java.util.*;
/*
* Map接口原理
*/
public class Demo1 {
public static void main(String[] args) {
//非常规的使用
Map<Integer, Object> map=new HashMap<Integer,Object>();
//for循环往map中输入数据
for (int i = 0; i < 10; i++) {
map.put(i, "zhangs"+i);
}
//foreach遍历
System.out.println("=====");
//map 特性,通常的使用情况。
Person p1 = new Person();
p1.setAge(20);
p1.setName("张三");
}
public void test(Person person){
System.out.println(person.getAge()>20);
}
public void test1(Map map){
System.out.println((Integer)map.get("age")>20);
}
//获取 年龄,姓名,分页信息
public Map<String, Object> getP(){
int age=100;
String name="a";
int page = 2;
Person p = new Person();
p.setAge(age);
p.setName(name);
Map<String,Object> map = new HashMap<String,Object>();
//code:标记 page:页数 date:数据(Person)
map.put("page", page);
map.put("date", p);
return map;
}
}
/*
* Map接口
* 1.存放key-value数据
* key,不可以重复(底层使用的set)
* value,可以重复的,底层使用的collections接口
* 2.实现类:
* HashMap
* LinkedHashMap
* TreeMap
* HashTable(已过时不再使用)线程安全的容器
* Properties是HashTable的子类,做键值对文件读取。
* 3.常用方法:
* put(key,value)
* get(key);返回object
* size()
* keySet();返回一个Set容器,获取所有的Key。
* values();获取所有的values,封装到一个实现了collection接口的容器里面(不常用)
*/
集合遍历
import java.util.*;
import java.util.Map.Entry;
public class Demo2 {
public static void main(String[] args) {
//非常规的使用
Map<Integer, Object> map=new HashMap<Integer,Object>();
//for循环往map中输入数据
for (int i = 0; i < 10; i++) {
map.put(i, "zhangs"+i);
}
//1.遍历方式:keySet
Set<Integer>keySet = map.keySet();
for (Integer temp : keySet) {
//因为value值是字符串类型。所以可以把获取到的object进行强制转换
String string=(String)map.get(temp);
System.out.println(string);
}
//
System.out.println("=====");
//map 特性,通常的使用情况。
Person p1 = new Person();
p1.setAge(20);
p1.setName("张三");
//实体类——>map容器
Map<String,Object> perMap=new HashMap<String,Object>();
perMap.put("name", "张三"); //key=实体类中的属性名称(name)(age)
perMap.put("age", 20);
//2.遍历map get(提前得知的key)用的最多
String name = (String)perMap.get("name");
int age = (Integer)perMap.get("age");
System.out.println(name+" "+age);
//3.(不常用)遍历map,获取所有values
Collection<Object> values=perMap.values();
Iterator<Object> iterator = values.iterator();
while(iterator.hasNext()){
Object v=iterator.next();
System.out.println(v);
}
//4.entrySet遍历map,把map中每一个键值对封装到Set<Entry>
Set<Entry<String, Object>> entrySet = perMap.entrySet();
for (Entry<String, Object> entry : entrySet) {
String key = entry.getKey(); //获取key的方法
Object temObject = entry.getValue(); //获取value的方法
System.out.println(key+" "+temObject);
}
testTreeMap();
}
public static void testTreeMap(){
Map<Integer, Object>treeMap=new TreeMap<Integer, Object>();
treeMap.put(3, "a");
treeMap.put(7, "b");
treeMap.put(1, "c");
//遍历,根据key值做了一个排列
for(Integer key: treeMap.keySet()){
System.out.print(treeMap.get(key)+" ");//输出c,a,b
}
System.out.println();
//定制排序
Map<String, Object> tmap=new TreeMap<String,Object>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
//自定义
return o1.compareTo(o2);
}
});
tmap.put("b", "b");
tmap.put("a", "a");
tmap.put("c", "c");
for(String k:tmap.keySet()){
Object object = tmap.get(k);
System.out.println(object);
}
}
public void sortList(){
List<Person> arrayList = new ArrayList<Person>();
Person p1=new Person();
p1.setName("jom");
Person p2=new Person();
p1.setName("cat");
Person p3=new Person();
p1.setName("dog");
//collections工具类
// Collections.sort(arrayList); //需要Person类实现comparable接口
Collections.sort(arrayList,new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
// TODO Auto-generated method stub
return 0;
}
});
}
}
文件的加载,Properties类
import java.io.*;
import java.util.*;
/*
* properties类
*/
public class Demo3 {
public static void main(String[] args) throws FileNotFoundException, IOException {
Properties pros=new Properties();
//设置绝对路径,不常用
//pros.load(new FileInputStream("E:\\javafile\\Demo13_2\\src\\jdbc.properties"));
//获取类加载器
InputStream resourceAsStream = Demo3.class.getClassLoader().getResourceAsStream("jdbc.properties");
pros.load(resourceAsStream);
String user=pros.getProperty("user");
System.out.println(user);
}
}
jdbc.properties
user=root
pwd=root
url=localhost