list字符串去重的三种方式 list去重 字符串去重

list字符串去重的三种方式

求List< String >中元素去重,并且求出去重后的个数

String字符串逆序输出的两种方式
http://blog.csdn.net/sunrainamazing/article/details/71583954

String字符串的之间的各类转化操作
http://blog.csdn.net/sunrainamazing/article/details/71583685

判断是否为回文字符串,逆序输出字符串
http://blog.csdn.net/sunrainamazing/article/details/55222791

  1. 采用原始的for循环遍历
  2. 采用set集合的特点
  3. 采用Java8流处理方式
package sun.rain.amazing.stream;

import org.junit.Test;

import java.util.*;
import java.util.stream.Collectors;

/**
 * Created by sunRainAmazing on SUN_RAIN_AMAZING
 * @author sunRainAmazing
 */
public class ListCaseOperate {

    private static  List list3;

    static{

        //注意 Arrays.asList的陷阱 返回的并不是 java.util.ArrayList
        //进行remove操作时会报错
//      list3 = 
//          Arrays.asList("tom","com","boss"
//              ,"boss","jerry","jerry");



        list3 = new ArrayList(
                    Arrays.asList("tom","com","boss","boss","jerry","jerry"));

    }



    /**
     * 将 list3 的数据进行去重操作 -- 采用 for循环判断
     * 若直接只采用 Arrays.asList进行初始化
     *      不支持 remove()操作  UnsupportedOperationException
     *
     *  这是因为 Arrays.asList返回的 ArrayList 
     *       并不是java.util.ArrayList,
     *      而是在Arrays类中重新定义的一下内部类ArrayList
     *      这个内部类 ArrayList并没有重写remove方法。
     *  解决方式:
     *      List list3 =
     *          new ArrayList
     *         (Arrays.asList("tom","com","jerry"));
     *
     * E remove(int index)     
     * 移除列表中指定位置的元素(可选操作)。
     *      将所有的后续元素向左移动(将其索引减 1)。
     * 返回从列表中移除的元素。
     */
    @Test
    public void getDistinctByFor(){
        List list = list3;
        for(int i=0; ifor(int j=i+1; jif(list.get(i).equals(list.get(j))){
                    list3.remove(i); //注意这里是list3
                }
            }
        }
        System.out.println(list3);
        System.out.println(list3.size());
    }




    /**
     * 将 list3 的数据进行去重操作 -- 采用Set去重
     */
    @Test
    public void getDistinctBySet(){
        Set set = new HashSet<>();
        set.addAll(list3);
        System.out.println(set);
        System.out.println(set.size());

    }





    /**
     * 将 list3 的数据进行去重操作 -- 采用 Stream 去重
     */
    @Test
    public void getDistinctByStream(){
        System.out.println(list3.stream()
                                .distinct()
                                .collect(Collectors.toList()));

        System.out.println(list3.stream()
                                .distinct()
                                .count());
    }



}

你可能感兴趣的:(String相关操作)