本文目錄一覽:
- 1、JAVA如何去除數組中每個元素中重複的內容
- 2、JAVA關於順序數組數據去重,效率最高的方式是什麼?
- 3、java中怎麼將字元串數組中的重複的元素去掉,但是還是保留一個。
- 4、JAVA數組去重問題
- 5、Java如何將數組中具有相同的元素都刪去
JAVA如何去除數組中每個元素中重複的內容
java數組中去掉重複數據可以使用set集合,set本身內部是不保存重複的數據的,如下代碼:
import java.util.Arrays;import java.util.Set;import java.util.TreeSet; public class ceshi { public static void main(String[] args) { int[] testArr = { 5, 5, 1, 2, 3, 6, -7, 8, 6, 45, 5 };//新建一個int類型數組 System.out.println(Arrays.toString(testArr)); SetInteger set = new TreeSetInteger();//新建一個set集合 for (int i : testArr) { set.add(i); } Integer[] arr2 = set.toArray(new Integer[0]); // 數組的包裝類型不能轉 只能自己轉;吧Integer轉為為int數組; int[] result = new int[arr2.length]; for (int i = 0; i result.length; i++) { result[i] = arr2[i]; } System.out.println(Arrays.toString(arr2)); }}
運行結果如下:
JAVA關於順序數組數據去重,效率最高的方式是什麼?
JAVA關於順序數組數據去重,效率最高的方式是使用LinkedHashSet也是Set,set的特徵就是對重複的元素只保存一個,LinkedHashSet只是在內部使用鏈表維護元素插入的順序
package com.question;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.LinkedHashSet;
/**
* delete the conflict String.
*
* @author Xxx
*/
public class Q16 {
/**
* generate the text.
*
*/
public void init() {
// write file
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(“C:/init.txt”);
for (int i = 0; i 100000; i++) {
for (int j = 0; j 2; j++) {
outputStream.write((“Hello” + i).getBytes());
outputStream.write(“\r\n”.getBytes());
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (outputStream != null) {
outputStream = null;
}
}
}
/**
* filter the string.
*
* @return
*/
public LinkedHashSetString filter() {
// create a LinkedHashSet project.
LinkedHashSetString linkedHashSet = new LinkedHashSetString();
try {
// read the file.
InputStream inputStream = new FileInputStream(“C:/init.txt”);
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = bufferedReader.readLine();
// add the string to the LinkedHashSet
while(line != null) {
linkedHashSet.add(line);
line = bufferedReader.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// return the result.
return linkedHashSet;
}
@Deprecated
public static void main(String[] args) {
Q16 q16 = new Q16();
// q16.init();
LinkedHashSetString linkedHashSet = q16.filter();
System.out.println(linkedHashSet.size());
}
}
java中怎麼將字元串數組中的重複的元素去掉,但是還是保留一個。
import java.util.*;
class BaiDu
{
public static void main(String[] args)
{
TreeSetString tr = new TreeSetString();
String[] s ={“11″,”22″,”22″,”33″,”33″,”33”};
System.out.print(“====處理前=======”);
for(int i=0;is.length;i++){
System.out.print(s[i]+” “);
tr.add(s[i]);
}
String[] s2= new String[tr.size()];
System.out.println(“=====處理後======”);
for(int i=0;is2.length;i++){
s2[i]=tr.pollFirst();//從TreeSet中取出元素重新賦給數組
System.out.print(s2[i]+” “);
}
}
}
JAVA數組去重問題
提供個思路,具體演算法還是自己寫比較好。
你可以用一個循環把vector里的元素取出來放進一個map裡面,之所以用map就是因為map是不允許有重複元素的。
這樣,map的key就是你的vector的元素,後面的value就是這個元素出現的次數。
當然,你在向map添加的時候要判斷一下是否有這個元素了。
最後頻率,計算一下就好了。
Java如何將數組中具有相同的元素都刪去
如果是要把List中的重複元素刪除的話可以先吧List轉成Set去除重複元素
比如現在有個數組為 myArray ,裡面有部分的重複元素
Set mySet = new HashSet();
for(Object obj : Array){
mySet.add(obj);
}
mySet中所保存的元素就是唯一的了.
再吧mySet保存到數組中
完整例子:
// 創建一個數組,裡面存在重複的元素
String[] myArray = {“s”,”s”,”f”,”d”};
SetString mySet = new HashSetString();
// 去除重複元素
for(String s : myArray){
mySet.add(s);
}
myArray = new String[mySet.size()];
int index = 0;
// 將去重後的結果存入數組
for(String s : mySet){
myArray[index] = s;
index++;
}
// 列印出來結果
System.out.println(Arrays.toString(myArray));
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/302014.html