首页 > 电脑 > java 用list或者set给定一个手机号码,判该号码中出现的不重复数字的个数

java 用list或者set给定一个手机号码,判该号码中出现的不重复数字的个数

电脑 2022-06-10

java从指定list集合中随机抽取数字且不重复

Listlist=newArrayList();
list.add(2);
list.add(3);
list.add(5);
//次方法将集合的顺序打乱
Collections.shuffle(list);
intr1=list.get(0);
intr2=list.get(1);
inti=1;
while(r1==r2){
i++;
r2=list.get(i);
}
//结束

java如何读取文件中不重复的数字个数,并且去掉字母开头的?详细如下:


importjava.io.BufferedReader;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.util.HashSet;
importjava.util.Set;
importjava.util.regex.Pattern;
publicclassReadFile{
publicstaticvoidmain(String[]args){
InputStreamin=null;
InputStreamReaderinReader=null;
BufferedReaderreader=null;
try{
in=ReadFile.class.getResourceAsStream("demo.txt");//文件和类放在同一目录
inReader=newInputStreamReader(in);
reader=newBufferedReader(inReader);
Stringline=null;
Setset=newHashSet();//set去重
Patternpattern=Pattern.compile("[a-zA-Z]{1}.*");//以字母开头的
while((line=reader.readLine())!=null){
if(pattern.matcher(line).matches()){
continue;//如果第一个字符是字母,跳过
}
set.add(line);
}
for(Stringv:set){
System.out.println(v);//列结果
}
}catch(Exceptione){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}

一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下排序

前提 有一个数组 :int[] a = {1,2,3,4,5………………,3,10,1}; 先要知道数组的最大最小值。 比如最大10,最小1; int temp = new int[11] //比最大值大1,保证最后一个坐标是最大值 for(int i=0;i<数组元素个数;i++) temp[a[i]]++ 运行完了之后你对temp数组排序一下就行了,排序不用我说了吧 排序的时候要建立个数组记录排序后的数字以前的下标,下标就是那个重复出现的数字 这是最简单的方案,但是如果你最大值最小值较大,就不适用了

Java中如何去除List中的重复的值

你要去除的值是基本数据类型还是对象呢? 如果不想存重复数据何不用Set呢。。。 其实吧。。在知道上提问不如在网页上查。。这个是我查到的第一个。。网页里的内容,他一共使用了3种方式 最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。 但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢? 试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。 //set集合去重,不打乱顺序 pub

用java找出这几个list,所有可能的组合,并且组合结果的list中的数据不允许重复

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

import java.util.TreeSet;

public class MyCode {

static TreeSet ts = new TreeSet<>();

static StringBuffer stb = new StringBuffer();


public static void main(String args[]) {

List a = new ArrayList<>();

a.add(1);

a.add(2);

a.add(3);

List b = new ArrayList<>();

b.add(2);

b.add(3);

b.add(4);

b.add(5);

List c = new ArrayList<>();

c.add(5);

c.add(6);

List d = new ArrayList<>();

d.add(5);

List e = new ArrayList<>();

e.add(7);

String arr[];

List names = (Arrays.asList("a,b,c,d,e".split(",")));

ArrayList> list = new ArrayList<>();

list.add(a);

list.add(b);

list.add(c);

list.add(d);

list.add(e);

for (int i = 0; i < list.size(); i++) {

List temA = new ArrayList<>(list.get(i));

for (int j = i + 1; j < list.size(); j++) {

List temB = new ArrayList<>(list.get(j));

temA.retainAll(temB);

if (temA.size() <= 0) {

List temC = new ArrayList<>(list.get(i));

List temD = new ArrayList<>(list.get(j));

temC.addAll(temD);

stb.append(names.get(i) + "," + names.get(j) + ",");

getNameIndex(temC, list, i, j, names);

arr = stb.toString().split(",");

Arrays.sort(arr);

ts.add(Arrays.toString(arr));

stb.delete(0, stb.length());

}

}

}

for (Iterator it = ts.iterator(); it.hasNext();) {

System.out.println(it.next());

}

}

private static void getNameIndex(List listTem, List> listB, int x, int y,

List names) {

for (int i = 0; i < listB.size(); i++) {

if (i == x || i == y) {

continue;

}

List listN = new ArrayList<>(listTem);

List listM = new ArrayList<>(listB.get(i));

listN.retainAll(listM);

if (listN.size() <= 0) {

stb.append(names.get(i));

break;

}

}

}

}

你这个,麻雀虽小,五脏俱全呢,看似一个简单的小玩意,挺费劲的!

主要用的是交集,并集,难点就是因为嵌套,有点饶头..你自己琢磨一下吧!


标签:信息技术 Java编程 编程 Java

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved.