List
1、声明
List<Object> list = new ArrayList<Object>();
2、其他
获取值:list.get(0);
添加值:list.add("zhu");
获取长度:list.size();
Map(它叫映射)
1、声明
Map<String,Object> map = new HashMap<String,Object>();
2、其他
获取值:map.get("name")
添加值:map.put("小明","14岁") //假设两个都是String
获取长度:map.size()
List<Map>
1、声明
List<Map<String,Object>> listMap = new ArrayList<Map<String,Object>>();
2、其他
1:声明一个Map
Map<String,Object> map = new HashMap<String,Object>();
说明:Map是通过key-value(值键对) ,String代表key的类型(一般都是String),Object代表value的类型
2:put(key,value) 赋值
map.put("name", "小明");
map.put("sex", "男");
map.put("age", 18);
3:get(key) 取值
map.get("name") 结果:小明
(三):List<Map>
1:声明一个List<Map>
List<Map<String,Object>> listMap = new ArrayList<Map<String,Object>>();
2:赋值
(1):先赋值给Map
Map<String,Object> map1 = new HashMap<String,Object>();
map1.put("name", "小明");
map1.put("sex", "男");
map1.put("age", 18);
Map<String,Object> map2 = new HashMap<String,Object>();
map2.put("name", "小红");
map2.put("sex", "女");
map2.put("age", 16);
(2):将map添加到List中
listMap.add(map1);
listMap.add(map2);
结果:[{sex=男, name=小明, age=18}, {sex=女, name=小红, age=16}]
(3):遍历
for(int i = 0;i<listMap.size();i++){
System.out.print(listMap.get(i).get("name"));
System.out.print(listMap.get(i).get("sex"));
System.out.print(listMap.get(i).get("age"));
System.out.println();
}
原文:https://blog.csdn.net/qq_16503045/article/details/82147418
Set
1、声明
Set courseSet = new HashSet();
Set<String> courseSet1 = new HashSet<String>();
Set<String> h = new HashSet<String>(Arrays.asList("a", "b"));
2、其他
添加值:set和list不一样,它是一个接口,因此需要实例化它的实现类。
String s1=new String("hello");
set.add(s1);
获取值:
获取长度:set.size
一些功能以及概念的区分
1、首先set和list都属于collection,map则不是。
collection中每个位置只有一个元素。list并且是线性存放,可重复的。
map则是键值配对,一个key只能有一个value。
2、什么时候使用它们
1. 如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。
2. 如果程序在单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步的类,其效率较高,如果多个线程可能同时操作一个类,应该使用同步的类。
3. 在除需要排序时使用TreeSet,TreeMap外,都应使用HashSet,HashMap,因为他们 的效率更高。
4. 要特别注意对哈希表的操作,作为key的对象要正确复写equals和hashCode方法。