java:util

1、Stack

public class Main {
	static Stack<Integer> stack = new Stack<Integer>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 进栈
		stack.push(1);
		stack.push(2);
		stack.push(3);
		// 取栈顶元素(不出栈)
		System.out.println(stack.peek());
		// 出栈
		stack.pop();
		System.out.println(stack.peek());
		// 判断栈是否为空
		if(stack.empty() == true) {
			System.out.println("为空");
		} else {
			System.out.println("不为空");
		}
		// 查看栈的大小
		System.out.println(stack.size());
		// 查看是否包含某个元素
		System.out.println(stack.contains(5));
		// 清空栈
		stack.clear();
	}
}

2、Queue

public class Main {
	static Queue<Integer> queue = new LinkedList<Integer>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 入队
		queue.add(1);
		queue.add(2);
		queue.offer(3);
		queue.offer(4);
		// 取队首元素(不出队)
		System.out.println(queue.peek());
		System.out.println(queue.element());
		// 弹出队首元素
		queue.remove();
		queue.poll();
		System.out.println(queue.peek());
		// 判断队列是否为空
		if(queue.isEmpty() == true) {
			System.out.println("为空");
		} else {
			System.out.println("不为空");
		}
		// 查看队列大小
		System.out.println(queue.size());
		// 查看是否包含某个元素
		System.out.println(queue.contains(5));
		// 清空队列
		queue.clear();
	}
}

3、Map

public class Main {
	static Map<String, Integer> mp = new HashMap<String, Integer>();
//	static Map<String, Integer> mp2 = new TreeMap<String, Integer>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		mp.put("abc", 1);
		mp.put("def", 3);
		// 替换元素
		mp.replace("abc", 10);
		System.out.println(mp.get("abc"));
		// 删除元素
		mp.remove("abc");
		// 查询元素
		System.out.println(mp.get("def"));
		System.out.println(mp.get("ghi")); // null
		// 查看Map大小
		System.out.println(mp.size());
		// 查看是否包含某个键
		System.out.println(mp.containsKey("def"));
		// 查看是否包含某个值
		System.out.println(mp.containsValue("2"));
		// 判断是否为空
		System.out.println(mp.isEmpty());
		// 遍历Map
		// 1
		for(Map.Entry<String, Integer> tmp : mp.entrySet())
			System.out.println("key: " + tmp.getKey() + ", value: " + tmp.getValue());
		// 2
		for(String key : mp.keySet())
			System.out.println("key: " + key);
		for(Integer value : mp.values())
			System.out.println("value: " + value);
	}
}

4、ArrayList

(1)添加、删除、获取元素,判断是否含有某个元素,判断是否为空。

public class Main {
	static List<String> list = new ArrayList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("Mike");
		list.add("Jerry");
		list.add("Alice");
		list.add("Bob");
		// 删除元素
		list.remove(0); // 根据索引删除
		list.remove("Mike"); // 根据内容删除
		// 获取元素
		System.out.println(list.get(0));
		// 判断是否含有某个元素
		System.out.println(list.contains("ob")); // 有:true;没有:false
		// 判断是否为空,空:true,非空:false
		System.out.println(list.isEmpty());
	}
}

(2)插入或改变某个元素。

public class Main {
	static List<String> list = new ArrayList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("Mike");
		list.add("Jerry");
		list.add("Alice");
		list.add("Bob");
		// set(index, element)起到替换作用
		list.set(0, "tom");
		// add(index, element)放到原来index位置,之前index及后的元素往后移一位
		list.add(1, "mike");
		for(String string : list) {
			System.out.println(string);
		}
	}
}

(3)查看某个元素的索引,indexOf()查看第一次出现的位置,lastindexOf()查看最后一次出现的位置,不存在某个元素时,都返回-1。

public class Main {
	static List<String> list = new ArrayList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("Mike");
		list.add("Tom");
		list.add("Alice");
		list.add("Tom");
		list.add("Bob");
		// indexOf
		System.out.println(list.indexOf("Tom"));
		// lastindexOf
		System.out.println(list.lastIndexOf("Tom"));
	}
}

(4)生成子list,比较两个list是否相等,去重。

​
public class Main {
	static List<String> list = new ArrayList<String>();
	static List<String> list2 = new ArrayList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("Mike");
		list.add("Tom");
		list.add("Alice");
		list.add("Tom");
		list.add("Bob");
		// 生成子list
		list2 = list.subList(1, 4); // 从索引1开始,到索引4之前,即不包括索引4
		for(String string : list2) {
			System.out.println(string);
		}
		// 比较两个list是否相等
		if(list.equals(list2)) {
			System.out.println("same!");
		} else {
			System.out.println("not same!");
		}
		// 去重
		// 方法1
		for(int i = 0; i < list.size() - 1; i++) {
			for(int j = i + 1; j < list.size(); j++) {
				if(list.get(j).equals(list.get(i))) {
					list.remove(j);
				}
			}
		}
		System.out.println(list);
		// 方法2
		List<String> list2 = new ArrayList<String>();
		for(String string : list) {
			if(Collections.frequency(list2, string) < 1) {
				list2.add(string);
			}
		}
		System.out.println(list2);
	}
}

5、LinkedList

(1)添加、获取元素,生成子链表。

public class Main {
	static LinkedList<String> list = new LinkedList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("jerry");
		list.add("Mike");
		list.add("Alice");
		list.add("Bob");
		list.addFirst("aa"); // 在最前面添加"aa"
		list.addLast("cc"); // 在最后添加"cc"
		list.add(1, "hh"); // 添加在指定位置
		System.out.println(list);
		// 获取第一个和最后一个元素
		System.out.println(list.getFirst());
		System.out.println(list.getLast());
		// 遍历所有元素
		for(String string : list) {
			System.out.println(string);
		}
		// 生成子链表,从1开始,到4之前,即不包括4
		List list2 = list.subList(1, 4);
		System.out.println(list2);
	}
}

(2)删除元素。

public class Main {
	static LinkedList<String> list = new LinkedList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("jerry");
		list.add("Mike");
		list.add("Alice");
		list.add("Bob");
		list.add("Sarah");
		list.addFirst("aa");
		list.addLast("cc");
		// 删除元素
		list.removeFirst(); // 删除子一个元素
		System.out.println(list);
		list.removeLast(); // 删除最后一个元素
		System.out.println(list);
		list.subList(1, 4).clear(); // 根据范围删除,删除1--3
		System.out.println(list);
		list.remove("Tom"); // 删除元素"Tom"
		System.out.println(list);
		list.remove(1); // 删除在位置1上的元素
		System.out.println(list);
		list.clear(); // 清空
	}
}

(3)转换为ArrayList和数组。

public class Main {
	static LinkedList<String> list = new LinkedList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("jerry");
		list.add("Mike");
		list.add("Alice");
		list.add("Bob");
		list.add("Sarah");
		// 转换为ArrayList
		ArrayList<String> list2 = new ArrayList<String>(list);
		for(String string : list2) {
			System.out.println(string);
		}
		// 转换为数组
		String a[] = list.toArray(new String[list.size()]);
		for(int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
	}
}

(4)查找和替换元素。

public class Main {
	static LinkedList<String> list = new LinkedList<String>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		list.add("Tom");
		list.add("jerry");
		list.add("Tom");
		list.add("Alice");
		list.add("Bob");
		list.add("Tom");
		// 查找元素
		System.out.println(list.indexOf("Tom"));
		System.out.println(list.lastIndexOf("Tom"));
		// 替换元素
		list.set(3, "Replaced");
		System.out.println(list);
	}
}

6、set

public class Main {
	static Set<Integer> set = new HashSet<Integer>();
//	static Set<Integer> set2 = new TreeSet<Integer>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 添加元素
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);
		set.add(5);
		// 判断是否包含某个元素
		System.out.println(set.contains(3));
		// 判断集合是否为空
		System.out.println(set.isEmpty());
		set.remove(3);
		System.out.println(set);
		// 查看集合大小
		System.out.println(set.size());
		// 清空集合
		set.clear();
	}
}

7、优先队列

class student {
	int age;
	String name;
	public student(int age, String name) {
		this.age = age;
		this.name = name;
	}
}
public class Main {
	// 自定义排序方法
	static Comparator<student> cmp = new Comparator<student>() {
		public int compare(student A, student B) {
			if(A.age != B.age) return B.age - A.age; // 从大到小
			return A.name.compareTo(B.name); // 按字典序
		}
	};
	static PriorityQueue<student> queue = new PriorityQueue<student>(cmp); // 定义优先队列
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		queue.add(new student(10, "Tom"));
		queue.add(new student(30, "Jerry"));
		queue.add(new student(15, "Mike"));
		queue.add(new student(10, "Alice"));
		queue.add(new student(15, "Bob"));
		while(queue.isEmpty() == false) {
			System.out.println(queue.peek().age + " " + queue.peek().name);
			queue.poll();
		}
	}
}
发布了150 篇原创文章 · 获赞 4 · 访问量 6916

猜你喜欢

转载自blog.csdn.net/Napom/article/details/103111033
今日推荐