本文目录一览:
- 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));