Java集合题目
产生10个1-100的随机数,并放到一个数组中,把数组中大于等于10的数字放到一个list集合中,并打印到控制台
public static void main(String[] args) {
Random r=new Random(System.currentTimeMillis());
int[] arr=new int[10];
ArrayList arrayList=new ArrayList();
for (int i=0;i<10;i++){
arr[i]=r.nextInt(100);
if (arr[i]>=10){
arrayList.add(arr[i]);
}
}
System.out.println(arrayList);
}
}
假设顺序列表ArrayList中存储的元素是整型数字1~5,请使用你所知的所有方法遍历每个元素,将每个元素顺序输出
public static void main(String[] args) {
List list=new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
System.out.println(list);
}
从控制台输入若干行英文内容(输入回车一行结束,输入quit表示输入完成)以单词的方式放入集合中,将这些单词忽略大小写按照出现次数自然排序,如果次数相等,则按照字母顺序倒序后打印出来
public static void main(String[] args) throws Exception {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
List<WordNum> list=new ArrayList<WordNum>();
while (true) {
String ss = br.readLine();
if ("quit".equalsIgnoreCase(ss))
break;
String[] arr=ss.toLowerCase().split(" ");
for(String temp:arr) {
if(temp!=null && temp.trim().length()>0) {
WordNum wn=new WordNum(temp);
int pos=list.indexOf(wn);
if(pos!=-1) {
wn=list.get(pos);
wn.addNum();
}else {
list.add(wn);
}
}
}
}
Collections.sort(list,(obj1,obj2)->{
int res=0;
if(obj1!=null && obj2!=null) {
res=obj1.getNum()-obj2.getNum();
if(res==0) {
res=obj2.getWord().compareTo(obj1.getWord());
}
}
return res;
});
list.forEach(System.out::println);
}
}
}
class WordNum {
private String word;
private int num = 1;
public WordNum(String word) {
this.word = word;
}
public void addNum() {
this.num++;
}
public int getNum() {
return num;
}
public String getWord() {
return word;
}
@Override
public String toString() {
return "WordNum [word=" + word + ", num=" + num + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((word == null) ? 0 : word.hashCode());
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
WordNum other = (WordNum) obj;
if (word == null) {
if (other.word != null)
return false;
} else if (!word.equals(other.word))
return false;
return true;
}
}
在一个列表中存储以下字串类型元素:apple,grape,banana,pear。
1.返回集合中的最大的和最小的元素。
2.将集合进行排序,并将排序后的结果打印在控制台上
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
list.add("apple");
list.add("grade");
list.add("banana");
list.add("pear");
System.out.println("最小" + Collections.min(list));
System.out.println("最大" + Collections.max(list));
Collections.sort(list);
for (String s : list) {
System.out.println(s);
}
}
双色球规则:双色球每注投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1—33中选择;蓝色球号码从1—16中选择;请随机生成一注双色球号码。(要求同色号码不重复)
public static void main(String[] args) {
Ball[] reds=new Ball[33];
for (int i=1;i<33;i++)
reds[i-1]=new Ball(i);
Ball[] blues=new Ball[16];
for (int i=1;i<=16;i++)
blues[i-1]=new Ball(i,BallColor.BlUE);
Random r=new Random();
Set<Ball> set=new TreeSet<>();
set.add(blues[r.nextInt(blues.length)]);
while (set.size()<7){
set.add(reds[r.nextInt(reds.length)]);
}
set.forEach(System.out::println);
}
}
class Ball implements Comparable<Ball> {
private int no;
private BallColor color;
private Ball(){
super();
}
public Ball(int no){
this(no,BallColor.RED);
}
public Ball(int no,BallColor color){
this.no=no;
this.color=color;
}
@Override
public String toString() {
return "Ball{" +
"no=" + no +
", color=" + color +
'}';
}
public int compareTo(Ball o){
int res=this.color.compareTo(o.color);
if (res==0){
res=this.no-o.no;
}
return res;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Ball)) return false;
Ball ball = (Ball) o;
if (no != ball.no) return false;
return color == ball.color;
}
@Override
public int hashCode() {
int result = no;
result = 31 * result + (color != null ? color.hashCode() : 0);
return result;
}
}
enum BallColor{
RED{
public String toString(){
return "红色";
}
},BlUE{
public String toString() {
return "蓝色";
}
}
已知有十六支男子足球队参加2008北京奥运会。写一个程序,把这16 支球队随机分为4 个组。
提示:采用List集合和随机数
public static void main(String[] args) {
List<String> ls=new ArrayList<>();
ls.add("英国");
ls.add("阿根廷");
ls.add("加拿大");
ls.add("印度猴子");
ls.add("荷兰");
ls.add("德国");
ls.add("日本");
ls.add("美国");
ls.add("中国");
ls.add("新西兰");
ls.add("巴西");
ls.add("意大利");
ls.add("韩国");
ls.add("萨斯");
ls.add("奥巴马");
ls.add("特朗普");
Random r=new Random();
System.out.println("一组:");
for(int i=16;i>12;i--){
int a=r.nextInt(i);
System.out.println(ls.get(a));
ls.remove(a);
}
System.out.println("二组");
for (int i=12;i>8;i--){
int a=r.nextInt(i);
System.out.println(ls.get(a));
ls.remove(a);
}
System.out.println("三组");
for (int i=8;i>4;i--){
int a=r.nextInt(i);
System.out.println(ls.get(a));
ls.remove(a);
}
System.out.println("四组");
for (int i=4;i>0;i--){
System.out.println(ls.get(i-1));
}
}
产生10个1-20之间的随机数要求随机数不能重复
public static void main(String[] args) {
Random r=new Random();
HashSet<Integer> hs = new HashSet<Integer>();//创建set集合
while(hs.size()<10){
hs.add(r.nextInt(20)+1);
}
for (Integer integer : hs) {
System.out.println(integer);
}
}
现在有一个map集合如下:
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, “张三丰”); map.put(2, “周芷若”); map.put(3, “汪峰”); map.put(4, “灭绝师太”);
要求:
遍历集合,并将序号与对应人名打印。
向该map集合中插入一个编码为5姓名为李晓红的信息
移除该map中的编号为1的信息
将map集合中编号为2的姓名信息修改为"周林"
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "张三丰");
map.put(2, "周芷若");
map.put(3, "汪峰");
map.put(4, "灭绝师太");
System.out.println(map);
map.put(5, "李小红");
System.out.println(map);
map.remove(1);
System.out.println(map);
map.put(2, "周琳");
System.out.println(map);
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
while (it.hasNext()) {
Integer key = it.next();
System.out.println("序号为:" + key + "姓名为:" + map.get(key));
}
}
有2个数组,第一个数组内容为:[黑龙江省,浙江省,江西省,广东省,福建省],第二个数组为:[哈尔滨,杭州,南昌,广州,福州],将第一个数组元素作为key,第二个数组元素作为value存储到Map集合中。如{黑龙江省=哈尔滨, 浙江省=杭州, …}。
public static void main(String[] args) {
String[] a={
"河南省","浙江省","江西省","广东省","福建省"};
String[] b={
"郑州","杭州","南昌","广州","福州"};
Map<String, String> map = new HashMap<>();
for (int i = 0; i<a.length ; i++) {
String ka=a[i];
String kb=b[i];
map.put(ka,kb);
}
System.out.println(map);
}
定义一个类型为String类型的List集合,统计该集合中每个字符(注意,不是字符串)出现的次数。例如:集合中有”abc”、”bcd”两个元素,程序最终输出结果为:“a= 1,b = 2,c = 2,d = 1”
public static void main(String[] args) {
String ss=new String("zhanghaosushe");
HashMap<Character,Integer> map=new HashMap<>();
char[] s=ss.toCharArray();
for (char ch:s){
if (map.containsKey(ch)){
map.put(ch,map.get(ch)+1);
}else {
map.put(ch,1);
}
}
System.out.println(map);
}