目录
练习一
1.定义一个长度为10的int数组,并存入10个int类型的数据,其中有一些数据是重复的。
2.利用集合的知识对数组进行去重,产生新数组,数组中原来数字的大小顺序不能改变。
3.打印新数组中的内容。分析:大小顺序不能改变——ArrayList 集合
package com.test1;
import java.util.ArrayList;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
int[] arr1 = {1,1,1,3,3,5,5,7,7,17};
ArrayList<Integer> al = new ArrayList<Integer>();
for(int i : arr1) {
if(! al.contains(i)) {
al.add(i);
}
}
//将集合转换为数组 要点---new Integer[al.size()]
Integer[] arr2 = al.toArray(new Integer[al.size()]);
System.out.println(Arrays.toString(arr2));
}
}
练习二
键盘读取一行字符串,去掉其中重复字符, 打印去重后的字符串。
分析:
方法一:使用 List集合 中的ArrayList集合【去重--添加】
方法二:使用 Set集合 中的HashSet集合【直接添加,Set特点无序不重复】
package com.test1;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请您输入一行字符串:");
String str = sc.nextLine();
method1(str);
method2(str);
}
//方法1----------------------------------------------------------
private static void method1(String str) {
ArrayList<Character> al = new ArrayList<Character>();
//去重相同的字符,再添加到集合
for(int i=0; i<str.length(); i++) {
char ch = str.charAt(i);
if( ! al.contains(ch)) {
al.add(ch);
}
}
//遍历输出
Iterator<Character> it = al.iterator();
while(it.hasNext()) {
System.out.print(it.next());
}
}
//方法2----------------------------------------------------------
private static void method2(String str) {
HashSet<Character> hs = new HashSet<Character>();
//将字符串添加到集合
for(int i=0; i<str.length(); i++) {
hs.add(str.charAt(i));
}
//遍历输出
Iterator<Character> iter= hs.iterator();
while(iter.hasNext()) {
System.out.print(iter.next());
}
}
}