Java集合算法:列表排序、反转、随机排序、搜索列表元素之学习笔记

部分内容引用自:https://www.w3cschool.cn/java/java-collections-algorithms.html


package com.hqy.String;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class JavaJiheAlgorithm {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
     
   /*
              一.Collection类中的两个静态方法会对List进行排序。
            1.sort(List list)按照由元素实现的Comparable接口定义的顺序对List中的元素进行排序。
            2.sort(List list,Comparator c)使用传入的Comparator对象对元素进行排序。 
    */
		
	List<String> list=new ArrayList<>();
	list.add("f");
	list.add("edf");
	list.add("y");
	list.add("c");
	
	System.out.println("List:"+list);
	Collections.sort(list);
	System.out.println("Sorted List:"+list);
	
	/*
	 * 二.使用List接口中的sort()方法按其元素长度的升序对列表进行排序:
	 */
	list.add("oedr");
	list.sort(Comparator.comparing(String::length));
	System.out.println("Sorted list:"+list);
		
	
	/*
	 三.搜索列表
	   Collections类中的两个静态binarySearch()方法在List中搜索键。
                              该方法使用二分搜索算法执行搜索。
     注意:     1.List 必须按升序排序,然后才能使用 binarySearch()方法。
               2. 如果在列表中找到该键,则该方法将在列表中返回其索引。          
	       3.如果在列表中没有找到键,它返回( - (insertion_index)-1),
	                 其中 Math.abs(( - (insertion_index)-1))是我们可以插入这个键的索引仍然保持列表订购。
               4.在列表中找不到键时,返回值为负值。
     */
	Collections.sort(list);
	int index=Collections.binarySearch(list, "f");
	System.out.println("f in list is at:"+index);
	
	index=Collections.binarySearch(list, "go on");
	System.out.println("go on in list is at:"+index);
	
	
	
	/*
	 四.随机播放列表
	       Collections类的shuffle()方法
	 */
	
	Collections.shuffle(list);
	System.out.println(list);
	
	Collections.shuffle(list);
	System.out.println(list);
	
	
	/*
	 五.反向列表:使用 Collections 类的 reverse()的静态方法来反转列表中的元素。
	 */
	Collections.sort(list);
	System.out.println(list);
	Collections.reverse(list);
	System.out.println("reverse:"+list);
	}

}

结果:

List:[f, edf, y, c]
Sorted List:[c, edf, f, y]
Sorted list:[c, f, y, edf, oedr]
f in list is at:2
go on in list is at:-4
[y, edf, f, c, oedr]
[edf, c, y, oedr, f]
[c, edf, f, oedr, y]
reverse:[y, oedr, f, edf, c]



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值