private static void test() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("仅仅是跳出最里面的for循环"+i+"/"+j);
if(j==2)
{
break;//仅仅是跳出最里面的for循环
}
}
}
System.out.println("end");
}
//结果
private static void test2() {
a:for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println("跳到指定代码块"+i+"/"+j);
if(j==2)
{
break a;//跳到指定代码块
}
}
}
System.out.println("end");
}
结果://
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
public class test {
private static LinkedHashMap<Integer, Integer> linkedHashMap;
private static LinkedHashMap<Integer, Integer> nodeleteKey;
private static int sum;
public static void main(String[] args) {
linkedHashMap = new LinkedHashMap<Integer, Integer>();
nodeleteKey = new LinkedHashMap<Integer, Integer>();
nodeleteKey.put(5, 5);// key为5的不能删除
for (int i = 0; i < 25; i++) {
linkedHashMap.put(i, i * 10);
sum += i;
trimToSize(i);
}
System.out.println(linkedHashMap.toString());
}
/**
* @param i 过滤集合。删除最早插入的,不删除指定不删除的key
*/
private static void trimToSize(int i) {
while (true) {
synchronized ("trimToSize") {
// 符合条件。退出
if (sum < 100) {
break;
}
// 获取链表的第一个元素,也就是最先放进去的元素
Map.Entry<Integer, Integer> toEvict = null;
a: for (Map.Entry<Integer, Integer> entry : linkedHashMap
.entrySet()) {
toEvict = entry;
if (toEvict != null) {
for (Entry<Integer, Integer> iterable_element : nodeleteKey
.entrySet()) {
Integer value002 = iterable_element.getValue();
if (!toEvict.getKey().equals(value002)) {
// 仅仅要不是不能被删除的key即可了,就跳出至a,运行a代码块{}后面的代码
break a;
}
}
}
}
// 不是不能删除的元素
if (toEvict != null) {
Integer key = toEvict.getKey();
Integer value = toEvict.getValue();
linkedHashMap.remove(key);
sum -= i;
System.out.println("remove=" + key);
}
}
}
}
}
结果://