集合框架
List
常用的有子类:Arraylist和LinkedList
[构造方法,常用方法增(add)删(remove)查(get)改(set)等见api
-
ArrayList存放数据可以重复且有序
-
遍历集合:
// 方式一:
for (int i = 0; i < list.size(); i++) {
System.out.println(alist.get(i));
}
// 方式二
for(Object temp : list){
System.out.println("temp = " + temp);
}
// 方式三
list.forEach(temp-> System.out.println(temp));
Collections.sort的两种使用方式:
Collections.sort(Collection c):正叙排列
Collections.sort(Collection c,Comparator
(){ @override
public E compare(E o1, E o2)
//返回值为负则为倒序
扫描二维码关注公众号,回复: 11267873 查看本文章return o2 - o1;
})
Set
常用的子类:HashSet和TreeSet
-
HashSet底层是哈希码,没有下标,存放的数据无序且不可重复。
-
TreeSet底层是二叉树,有下标,存放的数据有序且不可重复。
Map(重点)
- Map(key,value)是双列型存储,存放数据无序,key不能重复,value可以重复
- 构造方法,增删改查,属性见api
例:
public class Demo07practice {
public static void main(String[] args) {
System.out.println("输入一行小写字母,可以看每个字母出现几次practice");
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
char[] chars = s.toCharArray();
Map<Character, Integer> map = new HashMap<>();
for (char c : chars) {
boolean flag = map.containsKey(c);//如果此映射包含指定键的映射,则返回 true
if(flag){
Integer value = map.get(c);//返回到指定键所映射的值,或 null如果此映射包含该键的映射。
value++;
map.put(c,value);
}else{
map.put(c,1);
}
}
System.out.println(map);
}
}