Java集合使用实验
创始人
2024-01-28 23:09:44
0

1. 在HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。要求如下:

Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals()方法返回true。
Person

public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}@Overridepublic int hashCode() {return name.hashCode();}@Overridepublic boolean equals(Object obj) {if (!(obj instanceof Person)) {return false;}Person person = (Person) obj;if (name == null) {return person.getName() == null ? true : false;}return name.equals(person.getName());}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}
}

PersonTest

public class PersonTest {public static void main(String[] args) {HashSet set = new HashSet();Person p1 = new Person("张三", 22);Person p2 = new Person("张三", 21);set.add(p1);set.forEach(System.out::println);System.out.println(set.size());set.add(p2);set.forEach(System.out::println);System.out.println(set.size());System.out.println(p1.equals(p2));}
}

在这里插入图片描述

2.选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。要求如下:

(1)创建TreeMap集合。
(2)使用put()方法将学号(“1”“2”“3”“4”“5”)和姓名(“张三”“李四”“王五”“小明”“小李”)存储到Map中,存的时候可以打乱顺序观察排序后的效果。
(3)使用map. keySet()获取键的Set集合。
(4)使用Set集合的iterator()方法获得Iterator对象用于迭代键。
(5)使用Map集合的get()方法获取键所对应的值。

public class TreeMapTest {public static void main(String[] args) {TreeMap treeMap = new java.util.TreeMap();treeMap.put(1, "张三");treeMap.put(2, "李四");treeMap.put(3, "王五");treeMap.put(4, "小明");treeMap.put(5, "小李");// 使用map. keySet()获取键的Set集合System.out.println(treeMap.keySet().toString());// 使用Set集合的iterator()方法获得Iterator对象用于迭代键Iterator> iterator = treeMap.entrySet().iterator();while (iterator.hasNext()) {System.out.println(iterator.next().getKey());}// 使用Map集合的get()方法获取键所对应的值Set> entrySet = treeMap.entrySet();for (Entry entry : entrySet) {System.out.println(entry.getValue());}}
}

在这里插入图片描述

3. LinkedList集合的方法使用:

(1)编写一个类Test,在该类中定义一个LinkedList集合;
(2)分别使用addFirst()和addLast()方法向集合中添加元素;
(3)使用peekFirst()方法获取集合中的第一个元素;
(4)使用pollFirst()方法获取并移除集合中的第一个元素;
(5)使用pollLast()方法获取并移除集合中的最后一个元素
LinkListTest

public class LinkListTest {public static void main(String[] args) {LinkedList link = new LinkedList();link.add("b");link.add("c");link.add("d");link.add("e");link.addFirst("a");System.out.println("向列表表头添加元素的结果为:" + link);link.addLast("f");link.addLast("g");System.out.println("向列表表尾添加元素的结果为:" + link);System.out.println("集合的第一个元素尾:" + link.getFirst());System.out.println("被移除的元素为:" + link.remove(6));link.pollLast();System.out.println("使用pollLast()方法后的列表:" + link);}
}

在这里插入图片描述

4. 创建一个只能容纳String对象名为names的ArrayList集合;

按顺序往集合中添加5个字符串对象:“张三”、“李四”、“王五”、“马六”、“赵七”;
对集合进行遍历,分别打印集合中的每个元素的位置与内容;
首先打印集合的大小,然后删除集合中的第3个元素,并显示删除元素的内容,然后再打印目前集合中第3个元素的内容,并再次打印集合的大小。

public class TestArrayList {public static void main(String[] args) {ArrayList list = new ArrayList();list.add("张三");list.add("李四");list.add("王五");list.add("马六");list.add("赵七");for (int i = 0; i < list.size(); i++) {System.out.println("第" + (i + 1) + "条数据为:" + list.get(i));}System.out.println("-------------------");System.out.println("集合大小为:" + list.size());list.remove(2);for (int i = 0; i < list.size(); i++) {System.out.println("第" + (i + 1) + "条数据为:" + list.get(i));}System.out.println("第3条数据为:" + list.get(2));System.out.println("集合大小为:" + list.size());}}

在这里插入图片描述

5.编写这样一个程序,该程序创建了在某一字符串中出现的字符索引(即,哪个字符出现在字符串中的哪个地方)。从命令行读取该字符串。例如,运行该程序:

java Concordance Hello world
将得到结果为:
{d=[9],o=[4,6],r=[7],w=[5],H=[0],l=[2,3,8],e=[1]}

public class Concordance {public static void main(String[] args) {@SuppressWarnings("resource")Scanner sc = new Scanner(System.in);String string = sc.nextLine();String[] split = string.split(" ");StringBuilder sb = new StringBuilder();for (String s : split) {sb.append(s);}Map> map = new HashMap<>();for (int i = 0; i < sb.toString().length(); i++) {ArrayList list = new ArrayList<>();char c = sb.charAt(i);if (map.containsKey(c)) {List res = map.get(c);res.add(i);map.put(c, res);} else {list.add(i);map.put(c, list);}}System.out.println(map.toString());}
}

在这里插入图片描述

相关内容

热门资讯

在合肥创业推荐项目 在合肥创业...   :个性服装印制店现在转印和电脑技术加在一起已经将应用领域无限扩展了,可以应用于空白文化衫、牛仔、...
2018年 2018年年度报告... 2粗粮早餐现代人越来越注意饮食健康,小本生意你可以从粗粮早餐下手。像玉米棒、烤红薯、煎饼、烧麦包子、...
最适小本生意创业的项目合年轻人... 个性化小礼品这种风靡欧美的个人图片保存新模式,已经从欧美展开,于去年9月份,个性化小礼品悄然进军中国...
2018适合在农乡镇小本创业致... 农村乡镇创业项目:科技书店现在的农村大都搞多种经营,农民们也广寻致富门路。通俗易懂的农村科技致富书籍...
乡镇小本创业致富项目 乡镇小本... 做什么小生意比较好赚钱?如今市面上的小本创业项目如雨后春笋般快速发展,如果你真的想要做点小生意赚钱。...
2017年农村致富金点子 20... 县城虽小却是一个地区的经济中心,周边生活的老百姓都要通过县城满足自己的日常生活需求。2017年被称为...
农村六个创业项目 最适合农村的... 洗一套衣服只需2元左右的成本,收费10元,翻新、清洗一件皮衣成本1-2元,收50-80元,日收活在5...
亳州炒货机小本创业首选项目 亳... 炒货机亳州炒货机,宿州炒货机小本创业首选项目致诚机械板栗机厂专业生产、批发、供应、销售各款炒板栗机器...
市场空亳州炒货机小本创业首选项... 创业俨然成为了当今社会致富的主要途径,而创业的风险又是让很多投资者忌惮。为了降低风险又不至于错过这个...
成都女人做什么创业项目比较好推... 成都女人做什么创业项目比较好推荐对于一个普通创业者来说,在选择项目的时候,一定要考虑自己的兴趣所在。...