my
import java.util.*;
class Tt {
public static void main(String[] args)
{
//int[] nums = {1, 1, 2};
int[] nums = {0,0,1,1,1,2,2,3,3,4};
removeDuplicates(nums);
}
/*
public static void sop(Object obj)
{
System.out.println(obj);
}
*/
public static int[] removeDuplicates(int[] nums) {
//ArrayList<Integer> al = new ArrayList<Integer>();
TreeSet<Integer> ts = new TreeSet<Integer>();
int len = nums.length;
for (int i = 0; i<len; i++ )
{
ts.add(nums[i]);
}
System.out.println(ts);
int[] num = SetToInt(ts);
return num;
}
private static int[] SetToInt(Set<Integer> allSet) {
// 先将set集合转为Integer型数组
Integer[] temp = allSet.toArray(new Integer[] {});//关键语句
// 再将Integer型数组转为int型数组
int[] intArray = new int[temp.length];
for (int i = 0; i < temp.length; i++) {
intArray[i] = temp[i].intValue();
}
return intArray;
}
/*
Iterator it = ts.iterator();
while(it.hasNext())
{
}
}
import java.util.*;
/*
去除ArrayList集合中的重复元素。
*/
class ArrayListTest
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
al.add("java01");
al.add("java02");
al.add("java01");
al.add("java02");
al.add("java01");
// al.add("java03");
/*
在迭代时循环中next调用一次,就要hasNext判断一次。
Iterator it = al.iterator();
while(it.hasNext())
{
sop(it.next()+"...."+it.next());
}
*/
/**/
sop(al);
al = singleElement(al);
sop(al);
}
public static ArrayList singleElement(ArrayList al)
{
//定义一个临时容器。
ArrayList newAl = new ArrayList();
Iterator it = al.iterator();
while(it.hasNext())
{
Object obj = it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
}
定义两个指针
public int removeDuplicates(int[] nums) {
if(nums == null || nums.length == 0) return 0;
int p = 0;
int q = 1;
while(q < nums.length){
if(nums[p] != nums[q]){
nums[p + 1] = nums[q];
p++;
}
q++;
}
return p + 1;
}