㈠ java如何實現冗餘數據的排重比如,現在有大數量的請求字元串,我要過濾掉重復的數據,如何實現
把字元串和字元串出現的次數放到一個map當中,統計出現的次數,大於一次的就是有重復,根據重復次數把它們從map中移除
㈡ 字元串數組的排重問題
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Test89 {
public static void main(String[] args) {
String[] single = { "a", "b", "a", "c", "d", "b", "e" };
Set set = new HashSet();
for (int i = 0; i < single.length; i++) {
set.add(single[i]);//將所有元素放入set,因為set裡面元素不重復,會自動替換重復的
}
int k = set.size();//取set的裡面元素個數,以便定義新數組的長度
int j=0;
String[] single2 = new String[k];//用set的元素個數定義數組長度
for (Iterator iterator = set.iterator(); iterator.hasNext();) {
single2[j] = iterator.next().toString();//遍歷set,放入新數組
j++;//新數組的計數器
}
for (int i = 0; i < single2.length; i++) {
System.out.print(single2[i]+" ");//遍歷新數組,列印其中所有元素
}
}
}
㈢ java怎麼吧獲取到excel的數據進行排重 ,重復的刪除,可以用什麼方式
讀取每一行數據,封裝成Javabean並且覆蓋tostring方法,然後放到set中去。覆蓋tostring是為了判斷啥時候算是相等的,這樣set中的數據就是不重復的數據
㈣ java 編程實現接收鍵盤輸入任意多個整數,並以逗號分開,然後選擇數組排重或隨機打亂。返回排序輸
//回答完畢,採納即可
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.Arrays;
importjava.util.Comparator;
importjava.util.Scanner;
publicclassDrinks
{
publicstaticfinalintREMOVE=1;
publicstaticfinalintRANDOM=2;
publicstaticfinalStringFILE="asd.txt";
publicstaticfinalStringLINE=System.getProperty("line.separator");
privatestaticString[]remove(String[]array)
{
String[]result=newString[0];
Stringtmp=",";
for(inti=0;i<array.length;i++)
{
Stringone=array[i];
if(tmp.indexOf(","+one+",")==-1)
{
String[]cloned=newString[result.length+1];
System.array(result,0,cloned,0,result.length);
cloned[cloned.length-1]=one;
result=cloned;
tmp+=one+",";
}
}
returnresult;
}
privatestaticvoidrandom(String[]array)
{
Arrays.sort(array,newComparator<String>()
{
@Override
publicintcompare(Stringo1,Stringo2)
{
doublerand=Math.random();
if(rand<0.5)
{
return1;
}
return-1;
}
});
}
privatestaticintwriteFile(Stringdata,Stringfile,booleanisAppend)
{
intcode=1;
try
{
FileWriterfw=newFileWriter(file,isAppend);
fw.write(data);
fw.flush();
fw.close();
}
catch(IOExceptione)
{
code=-1;
}
returncode;
}
publicstaticvoidmain(String[]args)
{
Scannerscanner=newScanner(System.in);
intstep=1;
Stringline="";
Stringchoosed;
loop:while(true)
{
if(step==1)
{
System.out.print("輸入任意多個整數,並以逗號分開:");
line=scanner.nextLine().trim();
if(!line.matches("^\d+([,,]\d+)+$"))
{
continue;
}
step=2;
}
elseif(step==2)
{
System.out.print("請選擇:1.數組排重2.隨機打亂:");
choosed=scanner.nextLine().trim();
if(!choosed.matches("^[12]$"))
{
System.out.println("輸入錯誤!");
continue;
}
else
{
System.out.print("你的選擇是:"+choosed);
String[]array=line.split("[,,]");
Stringdata;
intcode;
Stringregex="[\[\]]";
switch(Integer.parseInt(choosed))
{
caseREMOVE:
String[]result=remove(array);
data=Arrays.toString(result).replaceAll(regex,"")+LINE;
System.out.println("操作結果:"+data);
code=writeFile(data,FILE,true);
if(code==1)
{
System.out.println("成功寫入文件");
}
else
{
System.out.println("失敗寫入文件");
}
break;
caseRANDOM:
random(array);
data=Arrays.toString(array).replaceAll(regex,"")+LINE;
System.out.println("操作結果:"+data);
code=writeFile(data,FILE,true);
if(code==1)
{
System.out.println("成功寫入文件");
}
else
{
System.out.println("失敗寫入文件");
}
break;
default:
break;
}
while(true)
{
System.out.println("是否繼續?繼續按3,退出按4");
line=scanner.nextLine().trim();
if("3".equals(line))
{
step=1;
continueloop;
}
elseif("4".equals(line))
{
scanner.close();
breakloop;
}
else
{
continue;
}
}
}
}
}
}
}
㈤ java這個程序怎樣排重
下面那段就是去重復的代碼,有不懂的地方可以問我
public static void main(String[] args) {
int[] pai = new int[54];
int count = 0;
int i = 0;
while (count < 17) {
int[] pai1 = new int[17];
pai1[i] = (int) (Math.random() * 54) + 1;
pai[count] = pai1[i];
pai1[i] = 0;
System.out.print(pai[count] + " ");
i++;
count++;
}
/****************去重代碼*******************/
Map map=new HashMap();
List list=new ArrayList();
for (int j = 0; j < pai.length; j++) {
if(map.get(pai[i]) !=null){
map.put(pai[i], pai[i]);
list.add(pai[i]);
}
}
for (int j = 0; j < list.size(); j++) {
System.out.println(list.get(j));
}
/****************去重代碼*******************/
}
㈥ java調用mysql增加新數據後如何自動重新排列順序
如果mysql層面插入無法做到自動重新排列,你可以考慮每次查找,獲取數據的時候,可以進行按照規則排序
㈦ java 排重演算法
首先原始數據肯定要全部插入資料庫,有一條日誌插一條,以備以後別的需求.
然後通過sql來解決排重的問題.或者建按時,天,周,月,年建視圖
㈧ java 輸入一個字元串遇到數字就截掉並且排重
意思是不是把ascad12asd變成ascadasd?
static public void main(String[] args) {
String a = "ascad12asd我";
StringBuffer bf = new StringBuffer(a);
for (int i = 0; i < bf.length(); i++) {
if (bf.charAt(i) >= '0' & bf.charAt(i) <= '9')//取出每個位置上的相應的char比較。如果是在1-9之間就把它移除。
{
bf.delete(i, i+1);//移除當前位置上的數字
//bf.deleteCharAt(i);意思和上面一樣
i--;//移除了整體後面都會向前挪動一個 所以要i要減回去在判斷當前位置是否為數字
}
}
System.out.println( bf);
}
你去試下。也不知道你是這意思么?
㈨ java指令重排序,happens-before的問題
不會的。
java代碼肯定是執行t.i = 1這個後,
再執行new Thread(t).start();這個
所以不會出現你說的情況