集合之五:Set接口(答案)

时间:2023-03-09 21:29:06
集合之五:Set接口(答案)
 package com.shsxt.homework;

 import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List; /*
* 1、分析以下需求,并用代码实现:
(1)有如下代码:
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("f");
list.add("b");
list.add("c");
list.add("a");
list.add("d"); }
(2)利用HashSet对list集合去重(最终结果:list中没有重复元素)
2、:自己写出contains 方法 3、分析以下需求,并用代码实现: (1)编写一个泛形方法,实现指定位置数组元素的交换 (2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素 4.将"goOd gooD stUdy dAy dAy up"
每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现)
*/
public class Homework {
//1
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("f");
list.add("b");
list.add("c");
list.add("a");
list.add("d"); /*HashSet<String> set = new HashSet<>();
set.addAll(list);
System.out.println(set);
list.clear();
list.addAll(set);
System.out.println(list); //2
boolean flag=contains(set, "");
System.out.println(flag); //3.1
System.out.println(list);
change(list, 1, 4);
System.out.println(list);
*/ //3.2
String[] str=new String[10];
list.toArray(str);
printArr(str);
System.out.println("--------------");
reverse(str); //4
// String str = "goOd gooD stUdy dAy dAy up";
// turnTo(str);
} //2 编写自己的contains方法
public static boolean contains(Collection<String> c,String str){ for(String s: c){
if (str != null || str != "") {
if (str.equals(s)) {
return true;
}
}
}
return false;
} //3分析以下需求,并用代码实现:
//(1)编写一个泛形方法,实现指定位置数组元素的交换
public static <E> List<E> change(List<E> list,int idx1,int idx2){
E e=list.get(idx2);
list.set(idx2, list.get(idx1));
list.set(idx1, e);
return list;
}
//(2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素 /*public static <E> E[] reverse(E[] arr) {
for (int j = 0 ; j <arr.length ; j++) {
for (int i = arr.length-1 ; i > 0 ; i--) {
E temp=null;
temp=(E)arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
} return arr;
}*/
public static <T> void reverse(T[] arr) {
//将数组进行交换
for (int i = 0; i < arr.length / 2 ; i++) {
T temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
System.out.println("反转后的数据:");
printArr(arr);
} //4 将"goOd gooD stUdy dAy dAy up"
//每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现)
public static void turnTo(String str){ String[] split = str.split(" +"); // 创建StringBuilder对象
StringBuilder sb = new StringBuilder();
for(int i = 0; i < split.length; i++) {
String new_str = split[i];
// 使用substring截取首字符,将其转换成大写
String head = new_str.substring(0, 1).toUpperCase();
// 截取除首字母以外的字符串,将其转换成小写
String end = new_str.substring(1).toLowerCase();
// 将头和尾拼接上
sb.append(head).append(end).append(" ");
}
System.out.println(sb);
} //遍历数组的方法
public static <E> void printArr(E str[]){
for (int i = 0; i < str.length; i++) {
System.out.print(str[i]+" ");
}
}
}