无非就是检查是否已经有数据的问题,用List做可能比较简单点
public class SigleList{List<Integer> nums
public SingleList(){
nums = new ArrayList<Integer>()
}
public void add(Integer num){
if(!checkNumExist){
nums.add(num)
}
}
public boolean checkNumExist(Integer){
return nums.contains(Integer)
}
}
这个SingleList就简单实现了去重增加,可以用它来读数据
public class Test{public static void main(String[] args){
SingleList nums = new SingleList()
// 产生100个数据
for(int i = 0 i++ i < 100){
// 产生随机数
Integer num = new Random().nextInt(100000)
nums.add(num)
}
foreach(Integer num : nums){
System.out.println(num)
}
}
}
java数组中去掉重复数据可以使用set集合,set本身内部是不保存重复的数据的,如下代码:
import java.util.Arraysimport java.util.Setimport 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)) Set<Integer> set = new TreeSet<Integer>()//新建一个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)) }}
运行结果如下:
lz 你好
这个就是一个比较简单的算法题 , 你可以自己写
但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用
其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便
以下是实现代码:
import java.util.Listimport java.util.Scanner
public class DeleteRepeated {
private String str
private TreeSet<String> noReapted//带有String类型的TreeSet泛型
public DeleteRepeated() {
Scanner in = new Scanner(System.in)
System.out.println ("输入一个字符串:")
str = in.nextLine()
noReapted = new TreeSet()
}
//清楚重复的数据
public void removeRepeated(){
for (int i = 0 i < str.length() i++){
noReapted.add(""+str.charAt(i))
//str.charAt(i)返回的是char型 所以先加一个""空格 , 转换成String型
//TreeSet泛型能保证重复的不加入 , 而且有序
}
str = ""
for(String index:noReapted){
str += index
}
//输出
System.out.println (str)
}
public static void main(String[] args) {
DeleteRepeated dr = new DeleteRepeated()
dr.removeRepeated()
}
}
运行截图:
希望能帮助你哈