java常见的集合:
- Map、HashMap、TreeMap
- List、ArrayList、LinkedList
- Set、HashSet、TreeSet
代码demo:
- 主函数:
import javax.sound.midi.Soundbank;
import java.sql.SQLOutput;
import java.util.*;
public class MyHogwartsDemo2 {
public static void main(String[] args) {
method8();
}
}
- Map、HashMap、TreeMap
/**
* HashSet:不允许数据重复;允许null;无序
*/
public static void method6() {
HashSet<String> hashSet = new HashSet();
hashSet.add("aaa");
hashSet.add("bbb");
hashSet.add("bbb");
hashSet.add("bbb");
hashSet.add("ccc");
hashSet.add(null);
// 遍历:增强for循环
for (String h : hashSet) {
System.out.println(h);
}
}
/**
* linkedHashSet:不允许数据重复;允许null;无序;按照插入顺序排序
*/
public static void method7() {
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("aaa");
linkedHashSet.add("bbb");
linkedHashSet.add("bbb");
linkedHashSet.add("bbb");
linkedHashSet.add("ccc");
linkedHashSet.add(null);
// 遍历:增强for循环
for (String h : linkedHashSet) {
System.out.println(h);
}
}
/**
* TreeSet:自动排序 put一个null的时候报错空指针
*/
public static void method8() {
TreeSet<String> treeSet = new TreeSet<>();
treeSet.add("aaa");
treeSet.add("bbb");
treeSet.add("eee");
treeSet.add("fff");
treeSet.add("ccc");
// treeSet.add(null);
System.out.println(treeSet.size());
// 遍历:增强for循环
for (String h : treeSet) {
System.out.println(h);
}
}
- List、ArrayList、LinkedList
/**
* arraylist的了解及基本操作
* arraylist底层为可变大小的数组,遍历和查找元素较快,插入删除元素较慢
*/
public static void method2() {
// new一个ArrayList数组对象,以及练习常用的方法
// <String> 泛型,是指数组中存的是什么类型的内容;这样添加的时候就有类型限制;开发常用
// 添加元素,在指定位置添加元素;判断数组中是否含有元素
ArrayList<String> arrayList = new ArrayList();
arrayList.add("aaa");
arrayList.add("bbb");
arrayList.add("ccc");
arrayList.add("ddd");
arrayList.add("eee");
arrayList.add(0, "zzz");
// 遍历数组并且打印:注意取的长度的办法以及获取数组值的办法
// for (int i = 0; i < arrayList.size(); i++) {
// System.out.println("元素的位置是:" + i + ";元素内容是" + arrayList.get(i));
// }
// System.out.println(arrayList);
ArrayList<String> arrayList1 = new ArrayList();
arrayList1.add("aaa");
arrayList1.add("222");
arrayList1.add("333");
arrayList1.add("444");
arrayList1.add("555");
arrayList.addAll(arrayList1);
// 遍历addall之后的数组;拿数据用get
for (int i = 0; i < arrayList.size(); i++) {
System.out.println("元素的位置是:" + i + ";元素内容是" + arrayList.get(i));
}
// 判断是否包含某个元素
boolean flag = arrayList.contains("1");
System.out.println(flag);
// 倒序查找元素
int a = arrayList.lastIndexOf("aaa");
System.out.println(a);
// arraylist 转成数组,就可以使用数组的遍历了
Object[] oo = arrayList.toArray();
for (int i = 0; i < oo.length; i++) {
System.out.println(oo[i]);
}
System.out.println(oo);
}
/**
* Linkedlist的了解及基本操作
* Linkedlist底层为链表,插入和删除元素较慢,遍历和查找元素较慢
*/
public static void method3() {
LinkedList linkedList = new LinkedList();
linkedList.addFirst("AAA");
linkedList.addLast("ZZZ");
linkedList.add("BBB");
// System.out.println(linkedList.iterator());;
// peek() 方法是从队列中删除最后一个元素;队列为空,返回null
// poll() 方法是从队列中删除第一个元素;队列为空,返回null
for (int i = 0; i < linkedList.size(); i++) {
System.out.println(linkedList.peek());
System.out.println("----------");
// System.out.println(linkedList.poll());
}
}
- Set、HashSet、TreeSet
/**
* HashMap无序的;;键值对key-value映射,访问较快;键值可为null;
* HashMap的三种遍历方式;key重复的话,会被替换;按照put的顺序取值
*/
public static void method4() {
HashMap<String, String> hashMap = new HashMap();
hashMap.put("aaa", "111");
hashMap.put("bbb", "222");
hashMap.put("ccc", "333");
// Set<String> keySet = hashMap.keySet();
// hashmap的第一种遍历,遍历key,通过key获取value
for (String key : hashMap.keySet()) {
System.out.println("key:" + key);
System.out.println("key is " + key + ";value is " + hashMap.get(key));
}
// hashmap的第二种遍历;最推荐
for (Map.Entry<String, String> entry : hashMap.entrySet()) {
System.out.println("key is " + entry.getKey() + ";value is " + entry.getValue());
}
// hashmap的第三种遍历,直接遍历value
for (String value : hashMap.values()) {
System.out.println("value is " + value);
}
}
/**
* LinkedHashMap:继承自HashMap,使用元素的自然顺序对元素进行排序
* 遍历同hashmap
*/
public static void method5() {
LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap();
linkedHashMap.put(null, null);
linkedHashMap.put("name", "zhangsan");
}