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();
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章