输入一个数字,这个数字表示行数,每个行数一个颜色,最后输出输入次数最多的颜色。

这个题目翻译是:输入一个数字,这个数字表示行数,每个行数一个颜色,最后输出输入次数最多的颜色。

我的思路是:输入数字(Scanner),输入颜色(Scanner),用Map集合储存数据,判断数字,遍历选出最多次数的颜色,通过值传递

 

Java数组的长度是固定的,在同一个数组中只能存放相同类型的数据。为了能方便存储和操纵数目不固定的一组数据,JDK类库提供了Java集合,所有的Java集合类都位于java.util包中,Java集合主要分为以下3种类型:set,list,map。set不按特定方式排序,并且没有重复对象。list:按照索引位置 排序,可以有重复对象。map:每一个元素包含一对键对象和值对象,集合没有重复的键对象,值对象可以重复。那么我们这里用map类型来存储数据,因为这样可以键对值方式来判断。

List(列表):ArrayList,创建对象:List list<数据类型> = new ArrayList<数据类型>();

Map: Map<String,String> map = new HashMap<String,String>();

HashMap迭代器:遍历Hash中的元素

在Hash中可以直接使用以下方法遍历(所有键)KeySet,然后通过键可以找出需要的值
1
2
3
4
5
6
HashMap<String,String> mp =  new  HashMap<String,String>();
for  (String i : mp.keySet()) 
     //String 是mp中的键的对应类型 i 是对应的KeySet中的每一个键值  
     System.out.println( mp.get(i)); 
}
package sequence;

import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.List;

import java.util.Scanner;

public class Main1004 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int T = in.nextInt();
        List<String> list = new ArrayList<>();
        while (true) {
            Map<String, Integer> aMap = new HashMap<>();

            if (T != 0) {
                int m = T;
                while (T > 0) {
                    String bString = in.next();
                    if (aMap.get(bString) == null) {
                        aMap.put(bString, 1);
                    } else {
                        int count = aMap.get(bString);
                        aMap.remove(bString);
                        count++;
                        aMap.put(bString, count);
                    }
                    T--;
                }
                int i = 0;
                String result = null;
                for (String key : aMap.keySet()) {
                    int a = aMap.get(key);
                    if (a > i) {
                        i = a;
                        result = key;
                    }
                }
                list.add(result);
            }             
            else {
                for (int i = 0; i < list.size(); i++) {
                    System.out.println(list.get(i));
                }

                return;
            }


        }

    }
}

猜你喜欢

转载自1943068620.iteye.com/blog/2358135