1. java关于顺序数组数据去重,效率最高的方式是什么

JAVA关于顺序数组数据去重,效率最高的方式是使用LinkedHashSet也是Set,set的特征就是对重复的元素只保存一个,LinkedHashSet只是在内部使用链表维护元素插入的顺序

packagecom.question;

importjava.io.BufferedReader;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.util.LinkedHashSet;

/**
*deletetheconflictString.
*
*@authorXxx
*/
publicclassQ16{

/**
*generatethetext.
*
*/
publicvoidinit(){

//writefile
OutputStreamoutputStream=null;
try{
outputStream=newFileOutputStream("C:/init.txt");
for(inti=0;i<100000;i++){
for(intj=0;j<2;j++){
outputStream.write(("Hello"+i).getBytes());
outputStream.write(" ".getBytes());
}
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(outputStream!=null){
outputStream=null;
}
}
}

/**
*filterthestring.
*
*@return
*/
publicLinkedHashSet<String>filter(){

//createaLinkedHashSetproject.
LinkedHashSet<String>linkedHashSet=newLinkedHashSet<String>();
try{

//readthefile.
InputStreaminputStream=newFileInputStream("C:/init.txt");
=newInputStreamReader(inputStream);
BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);
Stringline=bufferedReader.readLine();

//
while(line!=null){
linkedHashSet.add(line);
line=bufferedReader.readLine();
}

}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
//returntheresult.
returnlinkedHashSet;
}

@Deprecated
publicstaticvoidmain(String[]args){
Q16q16=newQ16();
//q16.init();
LinkedHashSet<String>linkedHashSet=q16.filter();
System.out.println(linkedHashSet.size());
}
}

2. 对于java中如何去除重复的数据

set集合就是不可重复的,你可以将数据放在这个数据里面

3. java去掉数组里的重复的数据

计数方法,你在遍历数组外边int 一个数=0,如果某个数和数组【i】相等,就++
删除方法我用的是笨方法,因为数组不能直接增删操作,要先算出新数组的长度,在遍历出去,我是取巧了先排序了,当然你也可以用其他排序方法排序
public static void main(String[] args) {
int [] arr={1,2,2,3,4,5};
int len=arr.length;
Arrays.sort(arr);
int leng=0;
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
leng++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
leng++;
}
System.out.println(leng);
int newlength=0;
int []newArr=new int[leng];
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
newArr[newlength]=arr[i];
newlength++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
newArr[newlength]=arr[arr.length-1];
}
for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}

}

4. JAVA如何去除数组中每个元素中重复的内容

java数组中去掉重复数据可以使用set集合,set本身内部是不保存重复的数据的,如下代码


importjava.util.Arrays;importjava.util.Set;importjava.util.TreeSet;publicclassceshi{publicstaticvoidmain(String[]args){int[]testArr={5,5,1,2,3,6,-7,8,6,45,5};//新建一个int类型数组System.out.println(Arrays.toString(testArr));Set<Integer>set=newTreeSet<Integer>();//新建一个set集合for(inti:testArr){set.add(i);}Integer[]arr2=set.toArray(newInteger[0]);//数组的包装类型不能转只能自己转;吧Integer转为为int数组;int[]result=newint[arr2.length];for(inti=0;i<result.length;i++){result[i]=arr2[i];}System.out.println(Arrays.toString(arr2));}}

运行结果如下:

5. JAVA数组去重问题

我这有个笨办法供楼主参考:
把vector中元素都取出来放到一个数组中,
根据数据的实际情况,
选择不同的时间复杂度为log2N的排序算法进行排序,
然后新建一个链表,
结点为保存数据和频率的类,
遍历排序后的数组,
如果链表的尾结点与数组中当前元素相同,
将尾结点的频率加1,
否则append一个频率为1的结点,
希望大牛们能给出更好的解法

6. JAVA 去掉重复的数据

无非就是检查是否已经有数据的问题,用List做可能比较简单点

publicclassSigleList{
List<Integer>nums;

publicSingleList(){
nums=newArrayList<Integer>();
}

publicvoidadd(Integernum){
if(!checkNumExist){
nums.add(num);
}
}

publicbooleancheckNumExist(Integer){
returnnums.contains(Integer);
}
}

这个SingleList就简单实现了去重增加,可以用它来读数据

publicclassTest{
publicstaticvoidmain(String[]args){
SingleListnums=newSingleList();

//产生100个数据
for(inti=0;i++;i<100){
//产生随机数
Integernum=newRandom().nextInt(100000);
nums.add(num);
}

foreach(Integernum:nums){
System.out.println(num);
}
}
}

7. Java数组去重复问题

代码如下:
public static void main(String[] args) {
int[] Nums = { 100, 2, 2, 3, 4, 5, 5, 5, 7, 7, 8, 9, 9, 23, 45, 75, 75,
78, 80, 99, 99, 199 };
Integer [] aa = getDistinct(Nums);

for(int i : aa){
System.out.println(i);
}
}

static Integer[] getDistinct(int num[]) {
List<Integer> list = new java.util.ArrayList<Integer>();
for (int i = 0; i < num.length; i++) {
if (!list.contains(num[i])) {//如果list数组不包括num[i]中的值的话,就返回true。
list.add(num[i]); //在list数组中加入num[i]的值。已经过滤过。
}
}

return list.toArray(new Integer[0]);
//toArray(数组)方法返回数组。并要指定Integer类型。new
integer[o]的空间大小不用考虑。因为如果list中的长度大于0(你integer的长度),toArray方法会分配一个具有指定数组的运行
时类型和此列表大小的新数组。
}

8. java字符串数组去重并计数

package lianXi;

public class helloWorld {
public static void main(String[] args) {
//初始化
String[][] rstop = { { "a", "b", "c", "d" }, { "b", "a", "b", "b" },
{ "e", "f", "g", "d" }, { "h", "i", "f", "k" } };
String[][] stop = new String[2][16];
for (int i = 0; i < stop.length; i++) {
for (int j = 0; j < stop[0].length; j++) {
stop[i][j] = "0";
}
}
int p = 0;
boolean boo = true;
//执行操作
for (int i = 0; i < rstop.length; i++) {
for (int j = 0; j < rstop[i].length; j++) {
for (int k = 0; k <= p; k++) {
if (stop[0][k].equals(rstop[i][j])) {
int temp = (Integer.parseInt(stop[1][k]) + 1);
stop[1][k] = temp + "";
boo = false;
break;
}
}
if (boo) {
stop[0][p] = rstop[i][j];
stop[1][p] = "1";
p++;
}
boo = true;
}
}
//输出结果
for (int i = 0; i < stop.length; i++) {
for (int j = 0; j < stop[0].length; j++) {
System.out.print(stop[i][j] + " ");
}
System.out.println();
}
}
}

结果如下:

9. Java数组中重复数据的删除

java数组中去掉重复数据可以使用set集合,set本身内部是不保存重复的数据的,如下代码:

importjava.util.Arrays;
importjava.util.Set;
importjava.util.TreeSet;

publicclassceshi{
publicstaticvoidmain(String[]args){

int[]testArr={5,5,1,2,3,6,-7,8,6,45,5};//新建一个int类型数组
System.out.println(Arrays.toString(testArr));
Set<Integer>set=newTreeSet<Integer>();//新建一个set集合
for(inti:testArr){
set.add(i);
}
Integer[]arr2=set.toArray(newInteger[0]);
//数组的包装类型不能转只能自己转;吧Integer转为为int数组;
int[]result=newint[arr2.length];
for(inti=0;i<result.length;i++){
result[i]=arr2[i];
}
System.out.println(Arrays.toString(arr2));
}
}

运行结果如下: