黑马程序员技术交流社区
标题:
关于用StringBuff去除数组重复元素
[打印本页]
作者:
突然世界晴
时间:
2015-4-16 10:17
标题:
关于用StringBuff去除数组重复元素
// 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
public class Test18 {
public static void main(String[] args) {
int[] arr = { 4, 2, 4, 6, 1, 2, 4, 7, 8 };
show(arr);
}
private static void show(int[] arr) {
StringBuilder sb = new StringBuilder();
// 将数组添加到sb对象中;
for (int i : arr) {
sb.append(i);
}
// 输出sb为424612478
System.out.println(sb);
int i = sb.length() - 2;
int count = sb.length() - 1;
// 循环判断去重复
while (i >= 0) {
while (count > i) {
if (arr[i] == arr[count])
sb.deleteCharAt(count);
count--;
}
i--;
count = sb.length() - 1;
}
// 为什么输出42617 而不是426178
System.out.println(sb);
}
}
复制代码
作者:
csu050416
时间:
2015-5-4 10:19
这是我的想法,交流一下。
import java.util.*;
class Test5
{
public static void main(String[] args)
{
arrDelete();
}
public static void arrDelete()
{
int[] arr = new int[]{4,2,4,6,1,2,4,7,8};
//定义一个集合。
LinkedList<Integer> lis = new LinkedList<Integer>();
lis.add(arr[0]);
//遍历数组,将不同数组元素存入List集合。
for(int x=1;x<arr.length;x++)
{
if(lis.contains(arr[x]))
continue;
else
lis.add(arr[x]);
}
//将集合转为数组。
Integer[] arr1 = lis.toArray(new Integer[lis.size()]);
//打印数组。
System.out.print("{");
for(int y=0;y<arr1.length-1;y++)
System.out.print(arr1[y]+",");
System.out.print(arr1[arr1.length-1]+"}");
}
}
作者:
csu050416
时间:
2015-5-4 10:27
我这有个不好点:把数组定义到方法里去了。
public static void main(String[] args)
{
int[] arr = new int[]{4,2,4,6,1,2,4,7,8};
arrDelete(arr);
}
public static void arrDelete(int[] arr)
{
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2