利用Collections工具类获取字符串数组中最长的元素

package cn.com;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
//要求:获取字符串数组中最长的元素
//在这里要利用Collections的另一个max方法
//public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)*/
//步骤:
//1 Arrays.asList()将数组转换为List即将数组转换为了一种集合
//2 利用Collections.max()方法,找出最大值
//3 重点是让容器具有可比性,即实现了Comparator接口。相当于是把这个List集合里的东西扔进了容器里
public class Test2 {
	public static void main(String[] args) {
		String[] strArr = new String[] { "cd", "ab", "ddfa", "sd", "zd" };
		List<String> list = Arrays.asList(strArr);
		String maxStr = Collections.max(list, new strSort());
		System.out.println("maxStr=" + maxStr);
	}
}

class strSort implements Comparator<String> {
	@Override
	public int compare(String str1, String str2) {
		if (str1.length() < str2.length()) {
			return -1;
		}
		if (str1.length() == str2.length()) {
			return str1.compareTo(str2);
		} else {
			return 1;
		}
	}
}
时间: 2024-10-06 00:59:34

利用Collections工具类获取字符串数组中最长的元素的相关文章

ruby 怎么利用正则表达式在把一个字符串数组中的数字放到一个数组中?

问题描述 ruby 怎么利用正则表达式在把一个字符串数组中的数字放到一个数组中?str='100good200bad300ok'问题补充:说错了是把一个字符串中的所有数字放到一个数组中:)问题补充:是 100 200 300不过还是谢谢sunfjun 解决方案 str='100good200bad300ok' str.scan(/d+/)解决方案二:String的这个scan方法真不错, shaquan6776解决方案三:'100good200bad300ok'.split(/[^d]/).re

利用Collections工具类查找一个字符串在字符串数组里的位置即其角标

package cn.com; import java.util.Arrays; import java.util.Collections; import java.util.List; //要求:查找一个字符串在字符串数组里的位置即其角标 //Collections.sort()方法和Collections.binarySearch()方法; //注意Collections.binarySearch()是按照二分法查找,所以要先使用Collections.sort()使集合按照自然顺序排序 p

如何判断字符串数组是否包含字符串数组中的任意一个元素

问题描述 比如一个字符串数组一:poi[0]=aabbccddeepoi;poi[1]=ccssddpoi;..........另一个字符串数组是二:str[0]=a;str[1]=b;str[2]=c;............只是举例字符是全中文的,怎么判断一中是否包含二中的任意一个元素:contains函数好像只能用单个的,大神帮帮忙 解决方案 解决方案二:那你Contains多次,用or,一个true即为true呗解决方案三:除了for循环嵌套for循环我相信还有其它办法的吧0.0数据量大

java-Java中如何截取字符串数组中一段数字按大小进行排序,再输出整个排序后的字符串?

问题描述 Java中如何截取字符串数组中一段数字按大小进行排序,再输出整个排序后的字符串? String[] meg ={"1#zhang#3207237","2#Wang#3207232"...}根据最后的数字大小排序后输出 解决方案 帮助lz实现了一下,望采纳 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.uti

Java集合框架:Collections工具类

java.util.Collections工具类提供很多有用的方法,使得程序猿操作集合类的时候更加的方便容易,这些方法都是静态的.整个Collections工具类源码差不多有4000行,我们针对一些典型的方法进行阐述. 1. 调用一个空List,Set,Map public static final List EMPTY_LIST = new EmptyList<>(); public static final Map EMPTY_MAP = new EmptyMap<>(); p

JS 清除字符串数组中,重复元素的实现方法_javascript技巧

JS 清除字符串数组中,重复元素的实现方法 <script language="JavaScript"> <!-- var arrData=new Array(); for(var i=0; i<1000; i++) { arrData[arrData.length] = String.fromCharCode(Math.floor(Math.random()*26)+97); } //document.write(arrData+"<br/&g

PHP获取数组中重复最多的元素的实现方法

 本文实例讲述了PHP获取数组中重复最多的元素的实现方法.分享给大家供大家参考.具体方法如下: 代码如下: <?php /** * * Created on 2014-4-1 * @param array $array * @param int [optional] $length * @return array */ function mostRepeatedValues($array,$length=0){ if(emptyempty($array) or !is_array($array)

PHP获取数组中重复最多的元素的实现方法_php技巧

本文实例讲述了PHP获取数组中重复最多的元素的实现方法.分享给大家供大家参考.具体方法如下: 复制代码 代码如下: <?php  /**   *    * Created on 2014-4-1   * @param   array $array   * @param   int [optional] $length   * @return  array   */  function mostRepeatedValues($array,$length=0){      if(emptyempty

如何判断一个字符串数组中是否存在两个字符串序列相等?

问题描述 如何判断一个字符串数组中是否存在两个字符串序列相等?不要用时间复杂度为O(n2)的算法,请问具体要怎么做? 解决方案 解决方案二:publicbooleancompareEqual(String[]strs){booleanflag=false;//字符串数组中是否有两个字符串相等Stringtemp="";for(inti=0;i<strs.length;i++){if(temp.contains(strs[i])){flag=true;break;//若果有重复就直