首页 > 代码库 > Java复习第三天---集合框架的相关知识
Java复习第三天---集合框架的相关知识
集合框架总览:
Collection 接口常用方法 //1.add()向集合中添加数据 c.add(apple01); c.add(apple02); c.add(apple03); c.add(apple04); c.add(apple05); //2.isEmepty()检测当前集合是否为空 boolean empty = c.isEmpty(); System.out.println("is empty:"+empty); //3.size()返回当前集合的长度 int size = c.size(); System.out.println("size:"+size); //4.contains()检测当前集合是否包含某个指定的对象,判断的标准与具体的集合实现类有关, //一般来说取决于集合元素的hashCode()方法和equals()方法 boolean contains = c.contains(apple03); System.out.println("contains:"+contains); //5.remove()删除指定元素 c.remove(apple04); System.out.println("size:"+c.size()); //6.toArray()将当前集合转为一个Object类型的数组 Object[] array = c.toArray(); for(int i = 0; i < array.length; i++){ System.out.println(array[i]); } 集合遍历方式之iterator //1.获取Iterator迭代器 Iterator iterator = c.iterator(); //2.循环检查是否还存在“下一个”元素,使用iterator.hasNext() //遍历开始之前,游标指向的是第一个元素“之前”的位置 //当游标指向最后一个元素时,iterator.hasNext()返回false,退出循环 while(iterator.hasNext()){ //3.在循环体中使用next()方法获取当前游标指向的元素 Object next = iterator.next(); System.out.println(next); } 集合遍历方式之增强for循环 /* 增强for循环的格式 for(元素的类型 用来接收当前元素的变量 : 要遍历的集合){ System.out.println(指向当前元素的变量); } */ for(Object o : c){ System.out.println("~"+o); } Set接口之HashSet HashSet判断两个元素相等的标准: 1.hashCode()返回值相等 2.equals()方法返回true 要保证equals()方法返回true时,两个对象的hashCode()方法返回值相等 Set接口之LinkedHashSet Set集合之TreeSet 自然排序:要求元素对象实现Comparable接口 /** * 比较当前类的实例对象和传入的参数对象 * @return 返回整型,根据整型值判断两个对象的前后顺序 */ @Override public int compareTo(Object o) { if(this == o){ return 0; } if(o instanceof Apple){ Apple otherApple = (Apple) o; return appName.compareTo(otherApple.appName); } return 0; } 定制排序:要求将一个Comparator接口的实现对象传入TreeSet构造器中 //TreeSet集合的定制排序: Comparator comparator = new Comparator() { //匿名内部类:强行创建接口或抽象类的对象时,系统会要求在创建对象的地方把抽象方法实现 @Override public int compare(Object o1, Object o2) { if(o1 == o2){ return 0; } if(o1 instanceof Banana && o2 instanceof Banana){ Banana ban01 = (Banana) o1; Banana ban02 = (Banana) o2; return ban01.getBanName().compareTo(ban02.getBanName()); } return 0; } }; //定制排序要求将Comparator的实现对象传入TreeSet(comparator)构造器中 Set appSet = new TreeSet(comparator); List接口 //ListIterator提供了新的方法,可以实现从后向前遍历,使用时要注意当前游标的位置 while (listIterator.hasPrevious()){ Object previous = listIterator.previous(); System.out.println(previous); } Arrays.asList()方法 将一组数据转换为List集合 List asList = Arrays.asList(new String[]{"apple","banana","watermelon"}); Iterator iterator = asList.iterator(); while (iterator.hasNext()) { Object object = (Object) iterator.next(); System.out.println(object); } LinkedList void addFirst(Object obj) appList.addFirst(apple06); void addLast(Object obj) appList.addLast(apple07); Object getFirst() appList.getFirst() Object getLast() appList.getLast() Object removeFirst() appList.removeFirst(); Object removeLast() appList.removeLast(); Vector void addElement(Object obj) Apple apple06 = new Apple("New Apple"); appList.addElement(apple06);添加元素 void insertElementAt(Object obj,int index) Apple apple07 = new Apple("Insert Apple"); appList.insertElementAt(apple07, 3);在指定位置添加元素 void setElementAt(Object obj,int index) Apple apple08 = new Apple("Replace Apple~"); appList.setElementAt(apple08, 3);将指定索引值的元素替换为新元素 void removeElement(Object obj) appList.removeElementAt(3);删除指定位置的元素 appList.removeElement(apple04);删除指定元素,如果有多个则删除第一个 appList.removeAll(Arrays.asList(apple04,apple02));将参数集合中涉及到的全部元素都删除,即使有多个也全部删除 void removeAllElements() appList.removeAllElements();删除集合中的全部元素
内部类:
package net.csdn.inner; public class Outter { private String outData = http://www.mamicode.com/"outData";>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。