-
-
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 > 对象名称
