Java-集合Collections工具-9

  1. Collections工具类:
    概念:集合工具类,定义了除了存取以外的集合常用方法。
    此类完全由在collection上进行操作或返回collection的静态方法组成。它包含在cooletion上操作的多态算法,即“包装类”,包装类返回由指定collection支持的新collection.以及少数的其他内容。
    如果为此类的方法所提供的collection或类对象为null,则这些方法都将抛出NullPotionterException
    I. public static void sort<List list> // 升序排序(元素类型必须实现Comparable接口)
    //传入的集合List (T可以是Strings Integers)是要继承 Comparable,且Comparabl的要求是 给的可以是T 也可以是T的父类 但必须是可以排序的
    /// public static <T extends Comparable<? super T>> void sort(List list){
    Object[] a =list.toArray();
    Arrays.sort(a);
    ListIterator i = list.listTterator();//迭代器
    for(int j=0;j<a.length;j++){
    i.next();
    i.set((T)a[j]);}}
    public static void sort(Object o){
    if(LegacyMergeSort.userRequested)
    LegacyMergeSort(a);
    else
    ComparableTimSort.sort(a);}
    public static void legacyMergeSort(Object[] a){
    Object[] aux = a.clone();
    mergeSort(aux,a,0,a.length,0);}………………………
    //排序,要求:必须实现Comparable,必须可与自身类型比,以及父类类型比
    II. public static void reverse(List<?> list) //反转、倒置元素
    此方法以线性时间运行。
    III. public static void shuffle(List<?> list) //随机重置顺序
    main(){
    List list = new ArrayList();
    list.add(1);
    list.add(4);
    list.add(5);
    list.add(7);
    Collections.reverse(list);//倒序
    Collections.shuffle(list);//随机
    Collections.short
    for(int i = 0; i < list.size(); i++){
    System.out.println(list.get(i)); } }

源码: public int comparator(Integer anotherInteger){
return compare(this.value, anotherInteger.value);}
//返回-1 this靠前 返回1 this靠后 返回 0 二者相同
public static int compare(int x,int y){
return (x < y) ? -1 : ((x==y) ? 0 :1);}
String实现字典排序 Integer 实现大小排序

main(){
List stus =new ArrayList();
stus.add(new Student(12));
stus.add(new Student(14));
stus.add(new Student(13));
Collections.sort(stus); }
class Student implements Comparable{
@Override
public int compareTo(Student o ){
if(this.age > o.age){
return 100;
}else if(this.age < o.age){
return -100
}
return 0;} }

经验:一级目标能看懂、能调用,二级目标能定义、能设计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 说的是java集合工具类,java中提供了很多集合工具类,如java.util.Collections。这个类提供了一些静态方法,用于操作集合,如排序、搜索、交换等。例如,sort方法可以对List进行排序,reverse方法可以将List的顺序反转,shuffle方法可以随机打乱List的顺序。 Collections类还提供了一些限制访问的集合,如unmodifiableList,unmodifiableSet等。这些集合可以防止对集合的修改,因此在多线程环境中非常有用。 此外,还有一些其他的集合工具类,如Arrays,它提供了一些静态方法,用于操作数组,如排序、搜索等。 总的来说,java集合工具类为开发人员提供了很多方便的工具,可以大大简化开发工作。 ### 回答2: Java Collections是一个类库,用于存储和操作对象集合。它包含了一些常见的数据结构,如列表、集合、映射等,并提供了许多通用的算法和操作方法,这些方法可以快速地实现操作集合并且能够提高编程的效率。常用的集合类有ArrayList、LinkedList、HashSet、TreeSet、HashMap和TreeMap,它们都是实现了相应数据结构的类。 Collections工具类则是集合框架中的一个工具类,提供了一些静态方法,可以方便地对集合进行排序、查找、替换、反转、洗牌等操作。常用的方法有sort()、binarySearch()、reverse()、shuffle()、addAll()等。其中sort()方法是对集合进行升序排序的方法,shuffle()方法用于打乱集合元素的顺序,binarySearch()方法用于在有序集合中查找元素的位置,reverse()方法用于反转集合元素的顺序,addAll()方法用于向集合中添加多个元素等。 除了以上提到的方法,还有很多其他常用的方法,比如max()、min()、replaceAll()、rotate()等,它们也能在实际程序中提高开发效率。 总之,Collections工具类是Java集合框架中非常实用的一个工具类,它提供了一些快速而便捷地操作集合的方法,能够简化程序的编写并提高程序的效率。在实际应用中,我们应该熟练掌握这些方法的使用,并灵活运用它们来提高自己的编程技能。 ### 回答3: Java CollectionsJava中的一个重要工具类,它提供了一系列用于存储和操作对象的数据结构,如List、Set、Map等,方便对数据进行管理和操作。Java Collections 提供了以下集合框架接口和类: 1. Collection接口:是Java集合中的“根”。所有集合接口中定义的公共方法都包含在此接口中,如添加、删除、清除、以及获取集合元素等。 2. List接口:是有序集合,可以通过索引访问其中的元素,并可以允许重复元素存在。其中ArrayList是基于动态数组实现,而LinkedList则是基于双向链表实现。 3. Set接口:是用于存储不重复元素的集合,不允许重复元素存在。HashSet是基于哈希表实现,而TreeSet则是基于红黑树实现。 4. Map接口:以键值对的形式存储元素,允许键和值都可以为 null。HashMap是基于哈希表实现,而TreeMap则是基于红黑树实现。 5. Queue接口:是一个FIFO(先进先出)的集合,常用的实现类有LinkedList和PriorityQueue。 6. Stack接口:是一个LIFO(后进先出)的集合,常用的实现类有Stack。 Java Collections 提供的工具类主要有: 1. Collections:提供了对集合的排序、查找、复制、填充、反转等操作。 2. Arrays:提供了对数组的排序、查找、等操作。 3. Comparator:提供了比较器接口,可以实现自定义排序。 4. Iterator:提供了对集合的迭代器,可以遍历集合中的元素。 5. Enumeration:提供了对集合的枚举器,用于遍历早期版本集合类中的元素。 Java Collections 的应用非常广泛,例如在数据库开发中,常常使用 Map 来表示一条记录,List 来表示一张表,通过迭代器遍历列表进行操作等。掌握和熟练使用 Java Collections 工具类,可以提高 Java程序设计师的开发效率以及代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值