-
-
Set
的特点是元素无序,不可重复。Set
接口的主要实现类有java.util.HashSet
和java.util.TreeSet
-
-
public void clear()
:清空集合中所有的元素。 -
public boolean remove(E e)
: 把给定的对象在当前集合中删除。 -
public boolean contains(E e)
: 判断当前集合中是否包含给定的对象。 -
public boolean isEmpty()
: 判断当前集合是否为空。 -
public int size()
: 返回集合中元素的个数。 -
public Object[] toArray()
Collections集合工具类
1.1 作用:
1.2 常用方法
-
-
public static void shuffle(List<?> list)
:打乱集合顺序。 -
public static <T> void sort(List<T> list)
:将集合中元素按照默认规则排序。(默认升序排序) -
public static <T> void sort(List<T> list,Comparator<? super T> )
1.3
public static <T> void sort(List<T> list)`//将集合中元素按照默认规则排序。
举例
public class CollectionsDemo1 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); //list.add("cba"); //list.add("aba"); //list.add("sba"); //list.add("nba"); //采用工具类 完成 往集合中添加元素 Collections.addAll(list, "cba", "aba", "sba","nba"); System.out.println(list); //排序方法 Collections.sort(list); System.out.println(list); } } // 结果:[aba, cba, nba, sba]
我们使用的是默认的规则完成字符串的排序,那么默认规则是怎么定义出来的呢?
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { ... } /** Comparable接口的排序规则: compareTo (参数) { return this.Xxx - 参数; //升序排序 //return 参数 - this.Xxx; //降序排序 } */
public static <T> void sort(List<T> list,Comparator<? super T> )
这个里面就涉及到了Comparator这个接口,位于位于java.util包下,排序是comparator能实现的功能之一,该接口代表一个比较器,比较器具有可比性!顾名思义就是做排序的,通俗地讲需要比较两个对象谁排在前谁排在后,那么比较的方法就是:
public int compare(String o1, String o2) //比较其两个参数的顺序。(o1-o2 升序 o2-o1 降序)
/**
两个对象比较的结果有三种:大于,等于,小于。
如果要按照升序排序,
则o1 小于o2,返回(负数),相等返回0,o1大于o2返回(正数)
如果要按照降序排序
则o1 小于o2,返回(正数),相等返回0,o1大于o2返回(负数)
*/
案例
public class CollectionsDemo2 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("cba"); list.add("aba"); list.add("sba"); list.add("nba"); //排序方法 按照第一个单词的降序 Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.charAt(0) - o1.charAt(0); } }); System.out.println(list); } } // 结果:[sba, nba, cba, aba]
-
-
一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用
格式:类型名称 <? super 类Y > 对象名称