💁 个人主页:黄小黄的博客主页
❤️ 支持我:👍 点赞 🌷 收藏 🤘关注
🎏 格言:All miracles start from sometime somewhere, make it right now.
本文来自专栏:JavaSE从入门到精通
文章目录
1 Collections 工具类常用方法
1.1 排序反转类
1.1.1 reverse()
反转 List 中元素的顺序,具体如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("king");
list.add("Youth");
System.out.println("反转前 List = " + list);
Collections.reverse(list);
System.out.println("反转后 List = " + list);
}
}
1.1.2 shuffle()
对 List 集合元素进行随机排序, 具体如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("king");
list.add("Youth");
for (int i = 0; i < 5; i++) {
Collections.shuffle(list);
System.out.println("第" + (i+1) + "次打乱后 List = " + list);
}
}
}
1.1.3 sort()
根据元素的自然顺序对指定 List 集合元素按照升序排序。 具体如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("king");
list.add("Youth");
Collections.sort(list);
System.out.println( "List = " + list);
}
}
如果需要按照字符串的长度大小进行排序,则需要使用比较器:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("king");
list.add("Youth");
Collections.sort(list, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return ((String)o2).length() - ((String)o1).length();
}
});
System.out.println( "List = " + list);
}
}
1.2 查找、替换类
1.2.1 Object max()
Object max(Collection):根据元素的自然顺序,返回给定的集合中的最大元素,具体如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("king");
list.add("Youth");
Comparable max = Collections.max(list);
System.out.println(max);
}
}
Object max(Collection, Comparator):根据 Comparator 指定的顺序,返回给定集合的最大元素, 具体如下(返回长度最大的元素):
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("king");
Object max = Collections.max(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((String)o1).length() - ((String)o2).length();
}
});
System.out.println(max);
}
}
min()方法与该方法使用方式类似,不再赘述。
1.2.2 frequency()
int frequency(Collection, Object):返回指定集合中指定元素出现的次数。 具体如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("abc");
list.add("abc");
list.add("king");
int abc = Collections.frequency(list, "abc");
System.out.println("abc 出现的次数: " + abc);
}
}
1.2.3 copy()
void copy(List dest, List src):将 src 中的内容复制到 dest 中。 但是需要注意的是,直接copy会抛出数组越界异常,来看下面的例子,尝试将list的数据复制到dest中:
我们追进 Collection 工具类的 copy() 源码: 发现,如果新的list大小比原来需要复制的list小,则直接抛出异常!
public static <T> void copy(List<? super T> dest, List<? extends T> src) {
int srcSize = src.size();
if (srcSize > dest.size())
throw new IndexOutOfBoundsException("Source does not fit in dest");
if (srcSize < COPY_THRESHOLD ||
(src instanceof RandomAccess && dest instanceof RandomAccess)) {
for (int i=0; i<srcSize; i++)
dest.set(i, src.get(i));
} else {
ListIterator<? super T> di=dest.listIterator();
ListIterator<? extends T> si=src.listIterator();
for (int i=0; i<srcSize; i++) {
di.next();
di.set(si.next());
}
}
}
为了完成 copy 操作,首先我们需要给 dest 进行赋值,使其大小和 list 相同。 具体如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("king");
List dest = new ArrayList();
for (int i = 0; i < list.size(); i++) {
dest.add("");
}
Collections.copy(dest, list);
System.out.println("list = " + list);
System.out.println("dest = " + dest);
}
}
1.2.4 replaceAll()
boolean replaceAll(List list, Object oldVal, Object newVal):使用新值替换 list 对象中所有的旧值。 具体如下:替换所有的abc为祢豆子
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author 兴趣使然黄小黄
* @version 1.0
*/
public class CollectionsTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("drunk");
list.add("abc");
list.add("abc");
list.add("abc");
list.add("king");
System.out.println("原list = " + list);
Collections.replaceAll(list, "abc", "祢豆子");
System.out.println("新list = " + list);
}
}
写在最后
🌟以上便是本文的全部内容啦,后续内容将会持续免费更新,如果文章对你有所帮助,麻烦动动小手点个赞 + 关注,非常感谢 ❤️ ❤️ ❤️ !
如果有问题,欢迎私信或者评论区!
共勉:“你间歇性的努力和蒙混过日子,都是对之前努力的清零。”