题目如下:
1、 定义一个方法 listTest(ArrayList<String> list, String name),要求返回
name 在 list 里面第一次出现的索引,如果 name 没出现过返回-1。
2、已知数组存放一批 QQ 号码,长度 5-11 位,
String[] strs = {"10001","10086","12347806666","45612378901","10001","12347806666"}。
将该数组里面的所有 qq 号都存放在 LinkedList 中,将 list 中重复元素删
除,将 list 中所有元素分别用迭代器和增强 for 循环打印出来。
这俩题都不是很难,所以直接上源码(注释很详细)
第一题!:
import java.util.ArrayList;
import java.util.Scanner;
//1、 定义一个方法 listTest(ArrayList<String> list, String name),要求返回
//name 在 list 里面第一次出现的索引,如果 name 没出现过返回-1。
public class Demo {
public static void main(String[] args) {
ArrayList<String> name = new ArrayList<>();
name.add("白日梦想家"); //往name数组中先添加元素
name.add("午夜实干家");
name.add("哈哈哈");
m: while (true) {
System.out.println("----欢迎使用name查找系统----");
Scanner str = new Scanner(System.in);
System.out.println("1-查找,2-退出");
int o=-1;
try {o = str.nextInt();} //因为用户输入时可能输的不是数字,所以try一下
catch (Exception e){
System.out.println("请输入合法的数字!");
}
if (o == 1) {
System.out.println("请输入您要找的name:");
Scanner n = new Scanner(System.in);
String text = n.nextLine();
int i = name.indexOf(text); //返回索引给i
if (i == -1) {
System.out.println("您要找的name不存在!请重新输入");
} else {
System.out.println("您要找的name的索引为:" + i);
}
}else if(o==2){
System.out.println("感谢您的使用!欢迎下次再来!");
break m;
}
else{
System.out.println("输入有误请重新输入!");
}
}
}
}
第二题:
import java.util.Iterator;
import java.util.LinkedList;
//2、已知数组存放一批 QQ 号码,长度 5-11 位,
//String[] strs = {"10001","10086","12347806666","45612378901","10001","12347806666"}。
//将该数组里面的所有 qq 号都存放在 LinkedList 中,将 list 中重复元素删
//除,将 list 中所有元素分别用迭代器和增强 for 循环打印出来。
public class Demo2 {
public static void main(String[] args) {
String [] strs = {"10001","10086","12347806666","45612378901","10001","12347806666"};
LinkedList<String> list = all(strs);
System.out.println("----增强for:----");
for (String i:list) {
System.out.println(i);
}
System.out.println("----迭代器:----");
Iterator<String> iter = list.iterator(); //申请迭代器
while (iter.hasNext()){ //如果hasNext返回true则证明有下一个元素
String s = iter.next(); //下一个元素给对象s
System.out.println(s); //输出下一个元素
}
}
public static LinkedList<String> all(String[] strings){ //筛选最终要遍历出去的字符串
LinkedList<String> list = new LinkedList();
for(int i = 0;i<strings.length;i++){ //如果i<传进来的数组长度,继续遍历
if(list.contains(strings[i])){ //判断list中是否有相同的
continue; //有的话跳出循环
}
list.add(strings[i]); //没有的话,存
}
return list;
}
}
看完若还有疑问,欢迎私信我!我都会一一解答~