import java.util.Vector; import java.util.List;
public static void vectorDemo() { //constructors Vector<String> vec1 = new Vector<String>(); Vector<String> vec2 = new Vector<String>(10); Vector<String> vec3 = new Vector<String>(10, 3); String[] arr1 = {"a", "b", "c", "d", "e"}; Vector<String> vec4 = new Vector<String>(Arrays.asList(arr1));
//add methods for (int i = 0; i < 10; i++) { vec1.add(String.format("%d", i)); } //vec1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] vec2.addAll(vec4); //vec2: [a, b, c, d, e] vec2.addAll(3, vec1); //vec2: [a, b, c, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, d, e] vec2.add(8, "test"); //vec2: [a, b, c, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9, d, e] vec2.addElement("abc"); //vec2: [a, b, c, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9, d, e, abc] vec2.insertElementAt("def", 3); //vec2: [a, b, c, def, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9, d, e, abc]
//get methods Enumeration<String> iter = vec2.elements(); while(iter.hasMoreElements()) { System.out.println(iter.nextElement()); } String strAtPos3 = vec2.get(3); //position starts at index 0 String strAtPos3_1 = vec2.elementAt(3); //position starts at index 0 String firstStr = vec2.firstElement(); //a String lastStr = vec2.lastElement(); //abc
//Vector basic methods System.out.println(vec2.capacity()); //20, capacity is pre-allocated size System.out.println(vec2.size()); //18, size is the number of elements System.out.println(vec2.isEmpty()); //false //if newSize is greater than current size, null elements will be appended, //if newSize is less than current size, all elements after index "newSize" //will be discarded vec2.setSize(15); //vec2: [a, b, c, def, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9] vec2.trimToSize(); //trim empty positions, capacity will be equal to size //enlarge capacity, at lease the capacity should hold the size vec2.ensureCapacity(10); //capacity should be 15 now Vector<String> vecNew = (Vector<String>)vec2.clone(); System.out.println(vec2.hashCode()); System.out.println(vecNew.equals(vec2));
//index and contain methods System.out.println(vec2.indexOf("test")); //9 (index starts at 0) System.out.println(vec2.indexOf("1", 8)); //-1 (Searching starts at index 8) System.out.println(vec2.lastIndexOf("test")); //9 System.out.println(vec2.lastIndexOf("test", 6)); //-1 (Searching from index 6 to 0) System.out.println(vec2.contains("test")); System.out.println(vec2.containsAll(vec1)); //vec1: [0,1,2,3,4,5,6,7,8,9]
//set methods vec2.set(0, "Start"); //vec2: [Start, b, c, def, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9] vec2.setElementAt("SecElem", 1); //vec2: [Start, SecElem, c, def, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9] System.out.println(vec2);
//remove methods vecNew.remove(10); //vecNew: [a, b, c, def, 0, 1, 2, 3, 4, test, 6, 7, 8, 9] //remove the first match element vecNew.remove("2"); //vecNew: [a, b, c, def, 0, 1, 3, 4, test, 6, 7, 8, 9] vecNew.removeAll(vec4); //vecNew: [def, 0, 1, 3, 4, test, 6, 7, 8, 9] vecNew.removeElementAt(2); //vecNew: [def, 0, 3, 4, test, 6, 7, 8, 9] vecNew.removeElement("4"); //vecNew: [def, 0, 3, test, 6, 7, 8, 9] //remove all elements that are not contained in the param collection vecNew.retainAll(vec1); //vecNew: [0, 3, 6, 7, 8, 9] vecNew.removeAllElements(); //size will be 0, capacity will remain vecNew.clear(); //similar to removeAllElements System.out.println(vecNew);
//convert methods String[] sArr = new String[vec2.size()]; vec2.copyInto(sArr); //sArr: [Start, SecElem, c, def, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9] List l = vec2.subList(6, 10); //l: [2, 3, 4, test] Object[] ol1 = vec2.toArray(); for (int i = 0; i < ol1.length; i++) { System.out.println(ol1[i]); } String[] targetArr = new String[vec2.size()]; vec2.<String>toArray(targetArr); //targetArr: [Start, SecElem, c, def, 0, 1, 2, 3, 4, test, 5, 6, 7, 8, 9] System.out.println(vec2.toString()); } |
Stack:
Stack继承自Vector,所以Stack继承了Vector中定义的全部方法,除了Vector中的方法,Stack还定义了一些自己特有的方法
import java.util.Stack;
public static void stackDemo() { //Stack is derived from Vector Stack<Integer> s1 = new Stack<Integer>(); for (int i = 0; i < 10; i+=2) { s1.push(i); } System.out.println(s1); //[0, 2, 4, 6, 8] System.out.println(s1.peek()); //8 Integer top = s1.pop(); System.out.println(top); //8 System.out.println(s1.peek()); //6 System.out.println(s1.search(2)); //3 System.out.println(s1.search(3)); //-1 } |
Dictionary:
Dictionary是抽象类,不能实例化,Hashtable就是一个Dictionary的实现类,不过Dictionary已经过时,目前通常使用Map接口,Hashtable也实现了Map接口的方法
Hashtable:
import java.util.Hashtable;
public static void hashtableDemo() { Hashtable<String, Integer> ht1 = new Hashtable<String, Integer>(); for (int i = 0; i < 10; i++) { ht1.put(String.format("Test%d", i), i); } Hashtable<String, Integer> ht2 = (Hashtable<String, Integer>)ht1.clone(); Hashtable<String, Integer> ht3 = new Hashtable<String, Integer>(10, 0.8f);
System.out.println(ht3.isEmpty()); //true System.out.println(ht2.size()); //10
Enumeration<Integer> values = ht2.elements(); while (values.hasMoreElements()) { System.out.println(values.nextElement()); }
if (ht2.contains(5)) { // or use containsValue(5) Enumeration<String> keys = ht2.keys(); while (keys.hasMoreElements()) { String key = keys.nextElement(); Integer value = ht2.get(key); if (value == 5) { System.out.println(key); } } }
if (ht2.containsKey("Test2")) { System.out.println(ht2.get("Test2")); }
ht1.clear(); System.out.println(ht2); ht2.remove("Test5"); System.out.println(ht2); } |
Map:
import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.Collection;
public static void hashmapDemo() { Map<Integer, String> m1 = new HashMap<Integer, String>(); for (int i = 0; i < 10; i++) { m1.put(i, String.format("Test%d", i)); } System.out.println(m1);
Set<Map.Entry<Integer, String>> set = m1.entrySet(); for (Map.Entry<Integer, String> entry : set) { System.out.println(entry.getKey() + ":" + entry.getValue()); }
System.out.println(m1.containsKey(4)); System.out.println(m1.containsValue("Test5"));
Set<Integer> keys = m1.keySet(); Collection<String> values = m1.values(); m1.remove(6);
System.out.println(keys); System.out.println(values); } |
Set:
Set不包含重复元素
import java.util.ArrayList; import java.util.Set;
public static void setDemo() { int[] nums = new int[] {1, 4, 8, 3, 22, 34, 4, 6, 0, 33, 5, 6, 3, 9}; List list = new ArrayList(); for (int i:nums) { list.add(i); } System.out.println(list); //[1, 4, 8, 3, 22, 34, 4, 6, 0, 33, 5, 6, 3, 9] Set<Integer> set = new HashSet<Integer>();
//remove duplicate elements set.addAll(list); System.out.println(set); //[0, 1, 33, 34, 3, 4, 5, 22, 6, 8, 9] set.add(4); //4 is a duplicate element, so this will not take effect System.out.println(set); //[0, 1, 33, 34, 3, 4, 5, 22, 6, 8, 9]
System.out.println(set.size()); //11 } |
import java.util.Properties;
public static void propertiesDemo() { Properties props = new Properties(); props.put("Key1", "Value1"); props.setProperty("Key2", "Value2"); props.list(System.out); //-- listing properties -- //Key2=Value2 //Key1=Value1 System.out.println(props.getProperty("Key1")); //Value1 } |
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!