1 package com.shsxt.homework; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.HashSet; 6 import java.util.List; 7 8 /* 9 * 1、分析以下需求,并用代码实现: 10 (1)有如下代码: 11 public static void main(String[] args) { 12 List<String> list = new ArrayList<>(); 13 list.add("a"); 14 list.add("f"); 15 list.add("b"); 16 list.add("c"); 17 list.add("a"); 18 list.add("d"); 19 20 } 21 (2)利用HashSet对list集合去重(最终结果:list中没有重复元素) 22 2、:自己写出contains 方法 23 24 25 3、分析以下需求,并用代码实现: (1)编写一个泛形方法,实现指定位置数组元素的交换 (2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素 26 27 4.将"goOd gooD stUdy dAy dAy up" 28 每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现) 29 */ 30 public class Homework { 31 //1 32 public static void main(String[] args) { 33 List<String> list = new ArrayList<>(); 34 list.add("a"); 35 list.add("f"); 36 list.add("b"); 37 list.add("c"); 38 list.add("a"); 39 list.add("d"); 40 41 /*HashSet<String> set = new HashSet<>(); 42 set.addAll(list); 43 System.out.println(set); 44 list.clear(); 45 list.addAll(set); 46 System.out.println(list); 47 48 //2 49 boolean flag=contains(set, ""); 50 System.out.println(flag); 51 52 53 //3.1 54 System.out.println(list); 55 change(list, 1, 4); 56 System.out.println(list); 57 */ 58 59 //3.2 60 String[] str=new String[10]; 61 list.toArray(str); 62 printArr(str); 63 System.out.println("--------------"); 64 reverse(str); 65 66 //4 67 // String str = "goOd gooD stUdy dAy dAy up"; 68 // turnTo(str); 69 } 70 71 //2 编写自己的contains方法 72 public static boolean contains(Collection<String> c,String str){ 73 74 for(String s: c){ 75 if (str != null || str != "") { 76 if (str.equals(s)) { 77 return true; 78 } 79 } 80 } 81 return false; 82 } 83 84 //3分析以下需求,并用代码实现: 85 //(1)编写一个泛形方法,实现指定位置数组元素的交换 86 public static <E> List<E> change(List<E> list,int idx1,int idx2){ 87 E e=list.get(idx2); 88 list.set(idx2, list.get(idx1)); 89 list.set(idx1, e); 90 return list; 91 } 92 //(2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素 93 94 /*public static <E> E[] reverse(E[] arr) { 95 for (int j = 0 ; j <arr.length ; j++) { 96 for (int i = arr.length-1 ; i > 0 ; i--) { 97 E temp=null; 98 temp=(E)arr[j]; 99 arr[j]=arr[i]; 100 arr[i]=temp; 101 } 102 } 103 104 return arr; 105 }*/ 106 public static <T> void reverse(T[] arr) { 107 //将数组进行交换 108 for (int i = 0; i < arr.length / 2 ; i++) { 109 T temp = arr[i]; 110 arr[i] = arr[arr.length - 1 - i]; 111 arr[arr.length - 1 - i] = temp; 112 } 113 System.out.println("反转后的数据:"); 114 printArr(arr); 115 } 116 117 118 //4 将"goOd gooD stUdy dAy dAy up" 119 //每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现) 120 public static void turnTo(String str){ 121 122 String[] split = str.split(" +"); 123 124 // 创建StringBuilder对象 125 StringBuilder sb = new StringBuilder(); 126 for(int i = 0; i < split.length; i++) { 127 String new_str = split[i]; 128 // 使用substring截取首字符,将其转换成大写 129 String head = new_str.substring(0, 1).toUpperCase(); 130 // 截取除首字母以外的字符串,将其转换成小写 131 String end = new_str.substring(1).toLowerCase(); 132 // 将头和尾拼接上 133 sb.append(head).append(end).append(" "); 134 } 135 System.out.println(sb); 136 } 137 138 139 140 //遍历数组的方法 141 public static <E> void printArr(E str[]){ 142 for (int i = 0; i < str.length; i++) { 143 System.out.print(str[i]+" "); 144 } 145 } 146 }