list,set练习和Map简述
来源:互联网 发布:程序员的发展趋势 编辑:程序博客网 时间:2024/05/19 07:09
任务一:
按字符串长度排序
定义TreeSet集合
public static void main(String[] args) {Com com = new Com(); Set set = new TreeSet(com); // 传入参数set.add("adn");set.add("ndlkdj");set.add("bv");set.add("acfun");set.add("bilibili");System.out.println(set);}}
定义类接comparator接口
class Com implements Comparator{@Overridepublic int compare(Object o1, Object o2) {// TODO Auto-generated method stubif (!(o1 instanceof String && o2 instanceof String)) {throw new RuntimeException();}String s1 = (String) o1;String s2 = (String) o2;if (s1.length()>s2.length()) {return 1;}else if (s2.length()>s1.length()) {return -1;}if (s1.length()==s2.length()) { //避免两个字符串长度相时的情况。进行内容比较return s1.compareTo(s2);}else {return s1.length()>s2.length()?1:-1;}//return 0;}}运行结果
任务二:
将字符串"90 -7 0 18 2 45 4"中的数值进行排序。
public static void main(String[] args) {Set set = new TreeSet<>();String str = "90 0 -3 56 24 26";String[] split = str.split(" "); //空格切割字符串for (int i = 0; i < split.length; i++) { //遍历数组String stri = split[i];set.add(Integer.valueOf(stri)); //装箱成Integer类}System.out.println(set);}
Map集合
HashMap 和 遍历取出元素
往后写集合时,要注意加上泛型
public static void main(String[] args) {Map<String,String> map = new HashMap<>();map.put("a", "暴风");map.put("b", "影音");map.put("s", "网址");Set<Entry<String, String>> entrySet = map.entrySet(); //遍历mapIterator<Entry<String, String>> iterator = entrySet.iterator();while (iterator.hasNext()) {Entry<String, String> entry = iterator.next();entry.getKey();entry.getValue();System.out.println(entry.getKey()+entry.getValue());}}
更复杂一点的map两种遍历方法
class Student{private String name;private int num;public Student(String name, int num){this.name = name;this.num = num;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}@Overridepublic String toString() {return "Student [name=" + name + ", num=" + num + "]";}}
主方法先定义list集合,在声明map集合
List<Student> list = new ArrayList<>();list.add(new Student("sara",22));list.add(new Student("nokita",23));list.add(new Student("hakii",25));list.add(new Student("whales",26));Map<String,List> map = new HashMap<>(); //注意泛型map.put("andriod", list);
遍历方法一:while嵌套循环
Set<Entry<String, List>> entrySet = map.entrySet(); //方法一Iterator<Entry<String, List>> iterator = entrySet.iterator();while (iterator.hasNext()) { //while循环嵌套Map.Entry<String, List> entry = (Map.Entry<String, List>) iterator.next();String firstname = entry.getKey();List<Student> list2 = entry.getValue();Iterator<Student> iterator2 = list2.iterator(); while (iterator2.hasNext()) {Student student = iterator2.next();System.out.println(firstname+"---"+student.getName()+"...."+student.getNum()); //获取名字和姓名}}
遍历方法二:高级for循环(更简洁)
//for (集合中的元素类型 变量名 : 要遍历的集合) {//}高级for循环for (Entry<String, List> entry : entrySet) { //方法二String key = entry.getKey();List<? extends Student> value = entry.getValue();for (Student student : value) {System.out.println(key +"----"+student.getName()+"----"+student.getNum());}}运行结果
0 0
- list,set练习和Map简述
- list set map 简述
- 简述list,set,map集合
- 简述list,map,set, queue的区别
- List Set和Map
- List、Set和Map
- List、Set和Map
- 简述list,vector,map,set四中STL的数据结构的区别和各自特点
- 比较器练习(list,set,map...)
- list,set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- leetcode Construct Binary Tree from Inorder and Postorder Traversal
- redis基本命令
- android适配
- 归并排序
- tcp服务器与客户端
- list,set练习和Map简述
- wxWidgets界面设计工具DialogBlocks
- 使用C++11实现类似C#的属性概念设计
- Jackson之JSON包的使用分析
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之查找六:顺序查找
- Android Activity 四种启动模式
- 数据流中的中位数
- 不用正则实现js中replace全局替换的功能