1. 程式人生 > >集合 簡單 案例

集合 簡單 案例

random color ava move ast cnblogs static rand 關於

package com.oracle.Test;

    import java.util.ArrayList;
    import java.util.Collection;

    public class Demo02 {

        /*
         * 去除重復的常見邏輯 (如果已有API可以滿足你的需要.就使用已有的.)
         * 
         *   1. 利用第一次出現的位置和最後一次出現的位置.比較兩個位置
         *   是否相同.如果位置一樣代表沒有重復.如果位置不相同代表有重復.
         *       
         * 
         *   2.取集合中的第一個元素.將該元素保存下來.
         *       從當前集合中移除第一個元素.再利用contains方法來驗證
         *       如果返回值為false 代表沒有重復.如果返回值為true.求下標
         *   移除..重復直到contains的返回值為false.
         * 
         * 
         * 關於查找:
         * 
         * 
         
*/ public static void main(String[] args) { //--1 提供一個集合 ArrayList<Character> list = new ArrayList<>(); //--2 循環賦值 a97 0 48 for(int i = 0 ; i < 20 ;i ++){ list.add((char)(Math.random()*15 + 97)); } System.out.println(list);
//--3 遍歷集合 Collection<Character> cList = new ArrayList<>(); int length = list.size(); while(length > 0){ //--取出一個元素 Character c = list.get(0); //--求第一次出現的下標和最後一次出現的下標 int index = list.indexOf(c); //
indexOf( Object o)第一次出現的下標 int lastIndex = list.lastIndexOf(c); //lastIndexOf( Object o)最後一次出現的下標 //--如果下標不一致則有重復元素 if (index == lastIndex) { System.out.println(1 +""+ c); list.remove(c); length = list.size(); }else{ //-- 將該元素添加到一個新的集合中. cList.clear(); cList.add(c); //-- 獲取原有長度 //-- 利用removeAll方法.一次行把和該值相同的元素移除 list.removeAll(cList); System.out.println(length - list.size() + "" + c ); length = list.size(); } } //--4 查找重復 //--5 打印元素和重復的個數 } }

集合 簡單 案例