Collections练习之对字符串先折半,再取最长的一个

简介:

代码需求

   由

[aa, abcde, cba, cba, nbaa, zzz]

 

  变成

max=abcde

 

 

 

 

 

 

 

 

CollectionsDemo.java

复制代码
package zhouls.bigdata.DataFeatureSelection.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import zhouls.bigdata.DataFeatureSelection.test.ComparatorByLength;

public class CollectionsDemo {
    /**
     * @param args
     */
    public static void main(String[] args) {
        /*
         * Collections:是集合框架的工具类。
         * 里面的方法都是静态的。
         */
        demo();
    }
    
    public static void demo(){
        List<String> list = new ArrayList<String>();
        list.add("abcde");
        list.add("cba");
        list.add("aa");
        list.add("zzz");
        list.add("cba");
        list.add("nbaa");
        Collections.sort(list);
        System.out.println(list);
        //获取最大值。
        String max = Collections.max(list,new ComparatorByLength());
        System.out.println("max="+max);
    }
    
    public static <T> void mySort(List<T> list,Comparator<? super T> comp){
        for (int i = 0; i < list.size()-1; i++) {
            for (int j = i+1; j < list.size(); j++) {
                if(comp.compare(list.get(i), list.get(j))>0){    
                    T temp = list.get(i);
                    list.set(i, list.get(j));
                    list.set(j, temp);
                    Collections.swap(list, i, j);
                }
            }
        }
    }
    
    public static <T extends Comparable<? super T>> void mySort(List<T> list){ 
        for (int i = 0; i < list.size()-1; i++) {
            for (int j = i+1; j < list.size(); j++) {
                if(list.get(i).compareTo(list.get(j))>0){    
                    T temp = list.get(i);
                    list.set(i, list.get(j));
                    list.set(j, temp);
                    Collections.swap(list, i, j);
                }
            }
        }
    }
}


本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/7576980.html,如需转载请自行联系原作者
相关文章
|
6月前
|
算法
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
63 0
|
6月前
|
算法 测试技术 C#
【字符串】【贪心】【 树状数组】2193. 得到回文串的最少操作次数
【字符串】【贪心】【 树状数组】2193. 得到回文串的最少操作次数
|
6月前
|
算法 测试技术 C#
【线段树】2213. 由单个字符重复的最长子字符串
【线段树】2213. 由单个字符重复的最长子字符串
|
6月前
|
Python Java Go
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
44 0
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
|
6月前
|
算法 测试技术 C#
【map】【滑动窗口】【字典树】C++算法:最长合法子字符串的长度
【map】【滑动窗口】【字典树】C++算法:最长合法子字符串的长度
|
6月前
|
存储 编译器 C语言
Day2 排序子序列、倒置字符串
Day2 排序子序列、倒置字符串
46 0
【剑指offer】-数字在排序数组中出现的次数-32/67
【剑指offer】-数字在排序数组中出现的次数-32/67
|
6月前
【每日一题Day157】LC1574删除最短的子数组使剩余数组有序 | 双指针 + 二分查找
【每日一题Day157】LC1574删除最短的子数组使剩余数组有序 | 双指针 + 二分查找
44 0
|
C++
剑指offer 55. 数字在排序数组中出现的次数
剑指offer 55. 数字在排序数组中出现的次数
83 0
|
算法 C语言
剑指Offer 第53题:数字在升序数组中出现的次数
剑指Offer 第53题:数字在升序数组中出现的次数
136 0
剑指Offer 第53题:数字在升序数组中出现的次数