集合的分类:单列集合和双列集合
如下图:
Collections集合的常用方法:
public static void main(String[] args) {
List<String> names = new ArrayList<>();
//添加
Collections.addAll(names,"张三","李四","王二麻子");
System.out.println(names); //[张三, 李四, 王二麻子]
//打乱顺序
Collections.shuffle(names);
System.out.println(names);
//排序
List<Integer> age = new ArrayList<>();
Collections.addAll(age,1,2,5,4,3);
Collections.sort(age);
System.out.println(age); //[1, 2, 3, 4, 5]
// System.out.println(Collections.binarySearch(age,5));
// System.out.println(Collections.max(age));
List<Integer> newAge = new ArrayList<>();
Collections.copy(age,newAge);
System.out.println(newAge);
// Collections.sort(names, new Comparator<String>() {
// @Override
// public int compare(String o1, String o2) {
// return o1.compareTo(o2);
// }
// });
// Collections.sort(names,((o1, o2) -> o2.compareTo(o1)));
// names.sort(((o1, o2) -> o2.compareTo(o1)));
// System.out.println(names);
List<String> str = new ArrayList<>();
Collections.addAll(str,"张三","王五","李四");
str.sort((o1,o2)->o1.compareTo(o2));
System.out.println(str);
System.out.println(Collections.binarySearch(str,"李四" ));
}
List遍历:
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加数据
list.add("张三");
list.add("李四");
list.add("王二玛子");
//获取
System.out.println(list.get(0));
System.out.println("-----------------");
/**遍历方式
* 1.通过索引 for
* 2.增强 for
* 3.迭代器(不确定元素个数) Iterator
* 4.匿名内部类(lambda)
*/
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
System.out.println("------------");
for (String s : list) {
System.out.println(s);
}
System.out.println("-----------");
//获得迭代器
Iterator<String> it = list.iterator();
while (it.hasNext()){
String str = it.next();
System.out.println(str);
}
System.out.println("-------------");
list.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
System.out.println("-------------");
list.forEach((o)-> System.out.println(o));
System.out.println("---------------");
list.forEach(System.out::println);
//简化上面代码
}
Map遍历:
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<>();
map.put(1,"张三");
map.put(2,"李四");
//获得数据,通过key获得value
System.out.println(map.get(1)); //张三
System.out.println("------------");
/** 遍历(无序)
将map转换成set遍历
* 1.获得所有[key]进行遍历,keySet()
* 2.获得所有[键值对]进行遍历,entrySet()
*/
/**
* //1.获得所有[key]进行遍历,keySet()
*/
for (Integer key1 : map.keySet()){
//System.out.println(key1); //键数量2
String value1 = map.get(key1);
System.out.println(key1+":"+value1); //值
}
System.out.println("----------------");
//迭代器
Set<Integer> keySet2 = map.keySet();
Iterator<Integer> it2 = keySet2.iterator();
while (it2.hasNext()){
Integer key2 = it2.next();
String value2 = map.get(key2);
System.out.println(value2);
}
System.out.println("-------------------");
//lambda
Set<Integer> keySet3 = map.keySet();
keySet3.forEach(k->{
String v4 = map.get(k);
System.out.println(k +":"+v4);
});
}
public static void main(String[] args) {
/**
* 2.获得所有[键值对]进行遍历,entrySet()
*/
Map<Integer,String> map = new HashMap<>();
map.put(1,"张三");
map.put(2,"李四");
map.put(3,"王五");
for (Map.Entry<Integer,String> entry:map.entrySet()){
String v = entry.getValue();
Integer k = entry.getKey();
System.out.println(k+":"+v);
}
Iterator<Map.Entry<Integer,String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<Integer,String> it = iterator.next();
String v2 = it.getValue();
Integer k2 = it.getKey();
System.out.println(k2+":"+v2);
}
map.entrySet().forEach(en->{
String v3 = en.getValue();
Integer k3 = en.getKey();
System.out.println(k3+":"+v3);
});
map.forEach((k3, v3) -> System.out.println(k3 + ":" + v3));
}