1、 arrayList=new ArrayList(); arrayList.add(Welcome);tojava /把ArrayList变为数组相关的内容进行遍历 String strArray=new StringarrayList.size(); arrayList.toArray(strArray); for(int i=0;istrArray.length;i+)System.out.println(strArrayi); /使用迭代器进行ArrayList遍历 Iterator iter=arrayList.iterator(); while(iter.hasNext() Syst
2、em.out.println(iter.next(); List接口实现类LinkedList适合于在链表中间需要频繁进行插入和删除操作。 随机访问速度较慢。查找一个元素需要从头开始一个一个的找。此类实现 Deque 接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作LinkedList是在一个链表中存储元素。public class LinkedListTest linkedList=new LinkedList /使用ForEach遍历linkedList String strArray2=new StringlinkedList.size(); linkedLi
3、st.toArray(strArray2);strArray2.length;i+)System.out.println(strArray2i); /foreach遍历LinkedList for(String str:linkedList) System.out.println(str); iter=linkedList.iterator();List接口实现类Vector:Vector使用了关键字synchronized将访问和修改向量的方法都变成同步的了,所以对于不需要同步的应用程序来说,类ArrayList比类Vector更高效。相同点:都继承于AbstractList,并且实现Lis
4、t接口 都实现了RandomAccess和Cloneable接口都是通过数组实现的,本质上都是动态数组,默认数组容量是10都支持Iterator和listIterator遍历 不同点:ArrayList是非线程安全,而Vector是线程安全的容量增加方式不同,Vector默认增长为原来一倍,而ArrayList却是原来的一半+1Vector支持通过Enumeration去遍历,而List不支持public class VectorTest Vector vector = new Vector for(int i = 0; i 10; i+) vector.add(i); /直接打印 Syste
5、m.out.println(vector.toString(); /size() System.out.println(vector.size(); /contains System.out.println(vector.contains(2); /总结:对比Vector的遍历方式,使用索引的随机访问方式最快,使用迭代器最慢 /iterator遍历 iterator = vector.iterator(); while(iterator.hasNext() System.out.print(iterator.next() + /Enumeration遍历 Enumeration enu = v
6、ector.elements(); while (enu.hasMoreElements() System.out.println(Integer)enu.nextElement(); /toArray Object objArr = vector.toArray(); System.out.println(nobjArr: + Arrays.asList(objArr); Integer intArr = vector.toArray(new Integervector.size();intArr: + Arrays.asList(intArr); /add vector.add(5); /
7、remove vector.remove(5); System.out.println(vector); /containsAll System.out.println(vector.containsAll(Arrays.asList(5,6); /addAll vector.addAll(Arrays.asList(555,666); /removeAll vector.removeAll(Arrays.asList(555,666); /addAll方法 vector.addAll(5, Arrays.asList(666,666, 6); /get方法 System.out.printl
8、n(vector.get(5); /set方法 vector.set(5, 55); /add方法 vector.add(0, 555); /remove方法 vector.remove(0); /indexof方法 System.out.println(vector.indexOf(6); /lastIndexOf方法 System.out.println(vector.lastIndexOf(6); /listIterator方法 ListIterator listIterator = vector.listIterator(); System.out.println(listIterat
9、or.hasPrevious(); /listIterator(index)方法 iListIterator = vector.listIterator(5); System.out.println(iListIterator.previous(); /subList方法 System.out.println(vector.subList(5, 7); /clear vector.clear();List接口实现类Stack栈类,是Java2之前引入的,继承自类Vector。同样是线程同步的public class StackTest Stack stack = new Stackx.num)
10、return 1; else if(num=x.num) return 0; else return -1; public String toString() return num=+num;public class HashSetTest Set hashSet=new HashSet set2=new HashSet set2.add(new Num(1); set2.add(new Num(3); set2.add(new Num(2); set2.add(new Num(6); System.out.println(set2.size(); iterator2=set2.iterato
11、r(); while(iterator2.hasNext() System.out.println(iterator2.next();Set接口实现类LinkedHashSet:LinkedHashSet继承HashSet,是用一个链表实现来扩展HashSet类,它支持对规则集内的元素排序。HashSet中的元素是没有被排序的,而LinkedHashSet中的元素可以按照它们插入规则集的顺序提取。public class LinkedHashSetTest linkedHashSet=new LinkedHashSet linkedHashSet.add( String strArray=ne
12、w StringlinkedHashSet.size(); strArray=linkedHashSet.toArray(strArray);linkedHashSet) iterator=linkedHashSet.iterator(); while(tor.hasNext() Set接口实现类TreeSet:TreeSet实现了Set接口,它与HashSet的区别主要在于TreeSet中的元素会按照相关的值进行排序。HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的,只不过Set用的只是Map的key。由于TreeMap需要排序,所以需要一个Comparat
13、or为键值进行大小比较.当然也是用Comparator定位的.如果创建时没有确定,那么就会使用pareTo()方法,这就要求key必须实现Comparable接口.TreeMap是使用Tree数据结构实现的,所以使用compare接口就可以完成定位了.注意:TreeSet是根据对象的CompareTo方法来去重的,如果CompaerTo返回0说明两个对象相等,不能同时存在于TreeSet中。public class TreeSetTest white-space:pre Set treeSet=new TreeSettreeSet.add(dcba/String实体类中实现Comparable
14、接口,所以在初始化TreeSet的时候, /无需传入比较器 Iterator iterator=treeSet.iterator();while(iterator.hasNext() System.out.println(iterator.next(); treeSet2=new TreeSettreeSet2.add(new Num(1);treeSet2.add(new Num(3);treeSet2.add(new Num(2);treeSet2.add(new Num(6); System.out.println(treeSet2.size(); iterator2=treeSet2.iterator();while(iterator2.hasNext() TreeSet set = new TreeSetset.add(1111);set.add(2222);set.ad
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1