List:
是有序的集合;按照数据的插入前后顺序存储数据,可以有重复数据,有下标,用户可以通过索引来访问List中的元素,类似于java中数组。因为List关心的是索引,与其他集合相比, List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o)。- <p>/*
- * List接口的常用方法:</p><p> * */
- public void ListTools(){
-
- //泛型为JDK1.5及以上版本才有的
- //List<Object> list = new ArrayList();
- List list = new ArrayList();
- list.add("姓名");//向list增加元素
- list.add(1);
- list.add(1.0);
- list.add(100L);
- list.add('A');
-
- System.out.println("原有集合:" + list);
-
- list.add(5,"性别");//通过索引增加元素
-
- System.out.println("增加后集合:" + list);
-
- list.set(5, "女");//通过索引修改元素
-
- System.out.println("修改后集合:" + list);
-
- System.out.println("获取指定集合索引中的值:" + list.get(0));
-
- list.remove(0);//通过索引移除元素
-
- System.out.println("移除后集合:" + list);
-
- System.out.println("女在list中首次出现的位置:" + list.indexOf("女"));//返回此列表中第一次出现的指定元素的索引 ,如果不包含则返回-1;
-
- System.out.println("姓名在list中首次出现的位置:" + list.indexOf("姓名"));//返回此列表中第一次出现的指定元素的索引 ,如果不包含则返回-1;
-
- list.add("女");
-
- System.out.println("增加后集合:" + list);
-
- System.out.println("女在list中最后出现的位置:" + list.lastIndexOf("女"));//返回此列表中最后出现的指定元素的索引;如果不包含则返回 -1
-
- System.out.println("姓名在list中最后出现的位置:" + list.lastIndexOf("姓名"));//返回此列表中最后出现的指定元素的索引;如果不包含则返回 -1
-
- //获取所有元素
- ListIterator listit = list.listIterator();//列表迭代器
-
- while(listit.hasNext()){
- System.out.println(listit.next());
- }
- //子列表
- List list_new = list.subList(0,3);//返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图
- System.out.println(list_new);
-
-
- }</p>
复制代码 ArrayList与LinkedList与Vector的区别
ArrayList:底层数据结构是数组结构,非同步,特点:查询速度快。
LinkedList:底层数据结构是链表,非同步,特点:插入和删除快。
Vector:底层数据结构是数组结构,同步,特点:
Set:
是无序的集合,不能有重复数据存储,无下标,关心唯一性,它不允许重复,是因为Set判断两个对象相同不是使用==运算符,而是根据equals方法。即两个对象用equals方法比较返回。- /*
- * Set常用方法
- * */
- public void SetTools(){
- HashSet<String> set = new HashSet();//泛型JDK1.5及以上版本
-
- set.add("姓名");//向set增加元素
- set.add("年龄");
- set.add("性别");
-
- System.out.println("原有集合:" + set);//通过打印可以看出set集合是无序的
-
- //验证set的唯一性
- set.add("姓名");
- System.out.println("现有集合:" + set);//通过打印验证了set集合的唯一性
-
- System.out.println(set.contains("姓名"));//是否包含 返回true或false
-
- set.remove("姓名");//删除元素
-
- System.out.println("删除后集合:" + set);
-
- HashSet<String> hs = (HashSet)set.clone();//返回此 HashSet 实例的浅表副本:并没有复制这些元素本身。
-
- System.out.println("hs:" + hs);
-
- //set遍历
- for(String str : set){//JDK1.5及以上版本
- System.out.print(str + " , ");
- }
- System.out.println();
- Iterator it = set.iterator();//迭代器
- while(it.hasNext()){
- System.out.print((String)it.next() + " , ");
- }
- System.out.println();
- }
复制代码 Collection与Collections的区别
Collection好比是种植出来的水果,Collections则是对水果进行包装处理
Collection:该类为接口,
Collections:该类为包装类包含有关集合操作的静态方法,
Arrays工具类
该类是数组的各种方法- /*
- * Arrays常用方法
- * */
- public void ArraysTools(){
- //返回一个受指定数组支持的固定大小的列表
- List list = Arrays.asList("AAA","BBB");
- System.out.println(list);
-
- // 使用二分搜索法来搜索指定数组,以获得指定对象。
- //该方法是重载方法
- System.out.println(Arrays.binarySearch(new String[]{"AA", "BB", "CC"}, "AA"));
-
- //如果没有搜索到返回 (-(插入点) - 1) 该方法为JDK1.6及以上版本
- System.out.println(Arrays.binarySearch(new String[]{"AA", "BB", "CC", "DD"}, 1, 2, "AA"));
-
- //复制指定的数组,以使副本具有指定的长度。
- //该方法是重载方法
- char[] c = Arrays.copyOf(new char[]{'a', 'b', 'c', 'd', 'e'}, 2);
- for(char a : c){
- System.out.print(a + " - ");
- }
- System.out.println();
-
- //将指定数组的指定范围复制到一个新数组。
- //该方法是重载方法
- char[] b = Arrays.copyOfRange(new char[]{'a', 'b', 'c', 'd', 'e'}, 0, 4);
- for(char a : b){
- System.out.print(a + " - ");
- }
- System.out.println();
-
- // 如果两个指定的 char 型数组彼此相等,则返回 true。
- //该方法是重载方法
- System.out.println(Arrays.equals(new char[]{'a', 'b', 'c', 'd', 'e'}, new char[]{'a', 'b', 'c', 'd', 'e'}));
-
- //将指定的 char 值分配给指定 char 型数组的每个元素。
- //该方法是重载方法
- Arrays.fill(b, 'c');
- System.out.println(b);
-
- b = Arrays.copyOfRange(new char[]{'a', 'b', 'c', 'd', 'e'}, 0, 4);
- //将指定的 char 值分配给指定 char 型数组指定范围中的每个元素。
- Arrays.fill(b, 1, 3, 'c');
- System.out.println(b);
-
- //基于指定数组的内容返回哈希码。
- //该方法是重载方法
- System.out.println(Arrays.hashCode(b));
-
- int[] i = {12, 45, 9, 2, 7, 0};
- //对指定的 int 型数组按数字升序进行排序。
- //该方法是重载方法
- Arrays.sort(i);
- for(int a : i){
- System.out.print(a + " - ");
- }
- System.out.println();
-
- //返回指定数组内容的字符串表示形式。 JDK1.5及以上版本
- //该方法是重载方法
- String str = b.toString();
- System.out.println(str);
- }
复制代码 |