数据结构
集合(Collection)
list系列集合:
添加的元素是有序(录入)、可重复、有索引
ArrayList<String> list = new ArrayList<>();
set系列集合:
添加的元素是无序,不重复,无索引的
.add()
.contains(“STRING”)
.size()
列表迭代器遍历
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()){
String s = iterator.next();
if(s.equals("b")){
iterator.remove();//iterator.add("qqq");
}
System.out.println(s);
}
集合遍历
Iteratoriterator
Iterator<String> iterator = collection.iterator(); while (iterator.hasNext()){ String s = iterator.next(); System.out.println(s); }
增强for
for (String s : collection) { System.out.println(s); } //s是临时变量,如果修改了增强for中的变量是不会改变集合中原本的数据
Lambda遍历
collection.forEach(s->System.out.println(s));
Set<String>set1=new HashSet<>();
Set<String> set = list.stream().collect(Collectors.toSet());
==三种通用的遍历方式:
迭代器:在遍历的过程中需要删除元素,请使用迭代器。
增强for、Lambda: 仅仅想遍历,那么使用增强for或Lambda表达式==
HashMap
==Map是双列集合的顶层接口,他的功能是全部双列集合继承使用的==
//创建Map集合对象
Map<String,String> m = new HashMap<>();
//添加元素
//put 添加和覆盖
//如果键不存在则添加,返回null
// 如果键存在则覆盖,并把原有的数据返回
m.put("Leo","Ann");
m.put("Luck","Lucy");
String s = m.put("Anna","Lucy");
System.out.println(s);//原数据中没有anna,所以返回null
String s1 = m.put("Luck","Fuck");
System.out.println(s1);
String result = m.remove("Leo");
System.out.println(result);
//删除返回被删除的值
String s2 = m.remove("Luck");
System.out.println(s2);
//判断键是否存在
boolean valueResult = m.containsValue("Lucy");
System.out.println(valueResult);
boolean isResult = m.isEmpty();
if(isResult){
System.out.println("集合为空");
}else{
System.out.println("集合不为空");
}
System.out.println(m);
Map<String,String>map = new HashMap<>();
map.put("Leo","Ann");
map.put("Luck","Lucy");
map.put("Anna","Lucy");
Set<String> keys = map.keySet();
//增强for循环遍历
for (String key : keys) {
System.out.println(key);
String value = map.get(key);
System.out.println(key+"="+value);
}
//lambda表达式遍历
map.keySet().forEach(key->{
System.out.println(key);
String value = map.get(key);
System.out.println(key+"="+value);
});
//迭代器遍历
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()){
String key = it.next();
System.out.println(key);
String value = map.get(key);
System.out.println(key+"="+value);
}
//增强for循环遍历
Set<Map.Entry<String,String>> entrySet = map.entrySet();
for (Map.Entry<String,String> entry : entrySet) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"="+value);
}
for(Map.Entry<String,String> entry : map.entrySet()){
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"="+value);
}
//lambda表达式遍历
map.forEach(new BiConsumer<String, String>() {
@Override
public void accept(String key, String value) {
System.out.println(key + "=" + value);
}
});
System.out.println("---------------------");
map.forEach((String key,String value)->{
System.out.println(key+"="+value);
});
LinkedHashMap
二叉树(BinaryTree)
平衡二叉树
红黑树
常用快捷键
Alt + enter 一键补全
Alt + insert 一键初始化改写
Ctrl + n 查找类名源代码
Ctrl + b 查看源代码
Ctrl + Alt + m 代码提取,封装成方法
Ctrl + Alt + ← 回到上一个源码类
Ctrl + F12 查找用法
Ctrl + Alt + l 规范代码
Alt + 7 查看代码结构
Ctrl AIT v Runtime.getRuntime();===>Runtime runtime = Runtime.getRuntime();
添加依赖(导包)
在根目录新建lib文件夹,导入代码,并右键点击add as library