奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

java通用組合算法如何實現

時間:2025-05-12 02:31:48 java語言 我要投稿
  • 相關推薦

java通用組合算法如何實現

  Java是一個純的面向對象的程序設計語言,它繼承了 C++ 語言面向對象技術的核心,Java舍棄了C ++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據的內存空間,使得程序員不用再為內存管理而擔憂。以下是小編為大家搜索整理的java通用組合算法如何實現,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

  存在一個類似{31311133,33113330}這樣的集合,經過8取5組合,其他位置用非字母數字字符替代,比如使用*號,得到類似{3***1133,***13330,... ...}這樣的集合;

  還要求對于{3***1133,***13330}這樣的集合,再次經過5取3組合,其他位置用非字母數字字符替代,比如使用*號,得到類似{*****133,*****330,3***1*3*,... ...}這樣的集合。

  對于這樣的要求,實現的思路如下:

  首先,主要思想是基于信息編碼原理,通過掃描字符串,將10組合變為01組合。

  其次,對于每個數字字符串,設置一個單線程,在單線程類中設置一個List用來存放待處理數字字符串(可能含有*號,或者不含有)中每個數字的(而非*號)索引位置值;

  再次,設置BitSet來標志每個位置是否被*號替換得到新的組合字符串。

  最后,在掃描原始待處理數字字符串的過程中,根據設置的字符列表List中索引,來操作BitSet,對于每一個BitSet得到一個新的組合。

  使用Java語言實現如下:

  package org.shirdrn;

  import java.util.ArrayList;

  import java.util.BitSet;

  import java.util.Collection;

  import java.util.Collections;

  import java.util.HashSet;

  import java.util.Iterator;

  import java.util.List;

  /**

  * 通用組合拆分類(基于單線程)

  *

  * 可以完成兩種功能:

  *

  * 第一,可以將完全數字串拆分成為含有*號的字符串。

  * 例如:輸入集合{31311133,33113330},Splitter類會遍歷該集合,對每個字符串,創建一個SplitterThread

  * 線程來處理,如果是2取1組合,即starCount=8-2=6,經過線程處理得到類似******33,*****1*3等結果

  *

  * 第二,根據從帶有*號的字符串經過拆分過濾后得到的字符串集合,對其中每一個字符串進行組合

  * 例如:輸入集合5取1組合字符串集合{3***1133,***113330}

  *

  * CommonSplitter類會遍歷該集合,對每個帶有*號的字符串,創建一個SplitterThread

  * 線程來處理,如果是2串1組合,即starCount=8-3-2=3,經過線程處理得到類似******33,*****1*3等結果

  *

  * @author 時延軍

  *

  */

  public class CommonSplitter {

  private int starCount;

  private boolean duplicate;

  private Collection filteredContainer;

  public Collection getFilteredContainer() {

  return filteredContainer;

  }

  /**

  * 構造一個Spilitter實例

  *

  * @param container 輸入的待處理字符串集合

  * @param starCount 如果對于長度為N的數字字符串,進行M組合(即N取M),則starCount=N-M

  * @param duplicate 是否去重

  */

  public CommonSplitter(Collection container, int starCount, boolean duplicate) {

  this.duplicate = duplicate;

  this.starCount = starCount;

  if(this.duplicate) { // 根據指定是否去重的選擇,選擇創建容器

  filteredContainer = Collections.synchronizedSet(new HashSet());

  }

  else {

  filteredContainer = Collections.synchronizedList(new ArrayList());

  }

  Iterator it = container.iterator();

  while(it.hasNext()) {

  new Thread(new SplitterThread(it.next().trim())).start();

  }

  try {

  Thread.sleep(50);

  } catch (InterruptedException e) {

  e.printStackTrace();

  }

  }

【java通用組合算法如何實現】相關文章:

java算法實現排列組合的方法介紹09-23

如何實現java漢諾塔遞歸算法09-20

權重隨機算法的java實現08-13

JAVA簡單選擇排序算法及實現10-02

冒泡排序算法原理及JAVA實現代碼方法10-16

java如何實現漢諾塔08-08

Java基于余弦方法實現的計算相似度算法示例09-03

Java排序算法06-17

java中全排列是如何生成算法09-05

主站蜘蛛池模板: 商水县| 屯昌县| 柳江县| 湖南省| 牟定县| 南丰县| 邮箱| 罗田县| 荆州市| 通道| 无锡市| 天镇县| 银川市| 宁武县| 双江| 望都县| 塔城市| 井研县| 永仁县| 东光县| 宝鸡市| 肥西县| 基隆市| 桂平市| 新巴尔虎左旗| 淮南市| 遂宁市| 浦北县| 沾化县| 南京市| 阳城县| 新源县| 治县。| 双辽市| 疏勒县| 沾益县| 咸丰县| 东丰县| 布拖县| 台山市| 长岭县|