利用HashSet对list集合去重(最终结果:list中没有重复元素)
import java.util.ArrayList; import java.util.HashSet; import java.util.List; public class Demo1 { 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); for (String s : set) { System.out.println(s); } } }
自己写出contains 方法
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); boolean b = contains(set, "b"); System.out.println(b); } public static boolean contains(HashSet<String> set, String str) { for (String s : set) { if (s.equals(str)) return true; } return false; }
分析以下需求,并用代码实现:
(1)编写一个泛形方法,实现指定位置数组元素的交换
(2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素
package exrcise; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import javax.swing.plaf.synth.SynthSeparatorUI; public class Test1 { /* * 分析以下需求,并用代码实现: * (1)编写一个泛形方法,实现指定位置数组元素的交换 * (2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素 * */ public static void main(String[] args) { Integer[] arr = {1,2,3,4,5}; List<Integer> list = new ArrayList<>(); list.addAll(Arrays.asList(arr)); arrSwap(list, 1, 3); for (Integer integer : list) { System.out.println(integer); } System.out.println("-----------------------"); arrReverse(list); for (Integer integer : list) { System.out.println(integer); } } private static void arrReverse(List<?> list) { for (int i = 0; i < list.size() / 2; i++) { Collections.swap(list, 0+i, list.size()-i-1); } } private static void arrSwap(List<?> list, int i, int j) { if((i >= 0 && i <= list.size()) && (j >= 0 && j <= list.size())) { // Collections.swap(list, i, j); // 这个是swap的源码值得学习 final List l = list; l.set(i, l.set(j, l.get(i))); }else { System.out.println("位置错误"); } } }
将"goOd gooD stUdy dAy dAy up" 每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现)
(只能想到这笨方法了,回头查查看看更优的方法)
package exrcise; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; public class Test2 { public static void main(String[] args) { /* * 将"goOd gooD stUdy dAy dAy up" * 每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现) * */ String s1 = "goOd gooD stUdy dAy dAy up"; StringBuffer s2 = new StringBuffer(); for(int i=0; i< s1.length(); i++) { if(i==0 && (char)s1.charAt(i) >= 'a' && (char)s1.charAt(i) <= 'z') { s2.append((char)(s1.charAt(i) - 32)); }else if(s1.charAt(i-1)==' ' && (char)s1.charAt(i) >= 'a' && (char)s1.charAt(i) <= 'z') { s2.append((char)(s1.charAt(i) - 32)); }else if((char)s1.charAt(i) >= 'A' && (char)s1.charAt(i) <= 'Z') { s2.append((char)(s1.charAt(i) + 32)); }else{ s2.append(s1.charAt(i)); } } System.out.println(s1); System.out.println(s2); } }