集合与泛型总结

1在使用集合时候,遍历集合元素有多种方法,包括可以使用简单的for循环,增强for循环,用Iterator迭代器对象

(1)for(int i=0;i<call.size();i++){

System.out,print(call.get(i))

}

(2)for(String name:goodName)

System.out,print(call.get(name));

(3)迭代器

Iterator iterator=myList.iterator();

while(iterator.hasNext()){

System.out,print(call.get(i))

//得到迭代器对象

System.out,print(iterator.Next());

}

2关于set对象储存数据的使用

set接口,没有定义新的方法,只是包含从collection接口继承的方法,set接口常用的实现类HashSet,TreeSet,LinkedHashSet类是HashSet类的子类。与HashSet不同的是它对所有元素维护一个双向链表

Set<String>words=new HashSet<>();

words,add("one");

words,add("two");

words,add("three");

words,add("four");//不能将重复的元素添加到集合中

for(String w :words)

      System.out.println(w);

set对象实现集合运算

s1.addAll(s2):实现集合s1与s2的并运算

s1.retainAll(s2):实现集合s1与s2的交运算

s1.removeAll(s2):实现集合s1与s2的差运算

s1.containAll(s2):如果s2是s1的子集,该方法返回true

示例:
import java.util.*;

public class  TreeSetDemo{

public static void main(String[] args) {

Set<String>ts=new TreeSet<>();

//TreeSet中的元素会进行自动排序

String[]s=new String []{"one","two","three","four"};

for(int i=0,i<s.length;i++){

ts.add(s[i]);

}

Sytem.out.println(ts);

}


}

程序输出结果:

[four,one,three,two]

//ArrayList的使用,可以有三种方法转换字符串的大小写

import java.util.ArrayList;

import java.util.Iterator;

public class UpperCaseDemo {

public static void main(String[] args) {

ArrayList<String>names=new ArrayList<>();

names.add("zhao");

names.add("qian");

names.add("sun");

names.add("li");

//第一种方法:通过索引循环来访问

for(int i=0;i<names.size();i++) {

String name=names.get(i);

name=name.toUpperCase();

names.set(i,name);

}

System.out.println(names);

//第二种方法:使用迭代器

Iterator<String>it=names.iterator();

ArrayList<String>names2=new ArrayList<>();

while(it.hasNext()) {

String name=(String)it.next();

name=name.toUpperCase();

it.remove();

names2.add(name);

//使用迭代器遍历集合时,不能通过集合的remove方法删除集合元素,否则会抱异常。

//我们需要通过迭代器自身提供的remove方法来删除通过next()迭代出来的元素,

//需要注意的是先next,再remove.

}

names.addAll(names2);

System.out.println(names);

//第三种方法调用replaceAll()方法

names.replaceAll(String::toUpperCase);

System.out.println(names);

}

//LinkedList

示例:

public static void main (String[]args){

LinkedList<Integer>dd=new LinkedList<>();

dd.add(1);

dd.add(1);

dd.add(2);

dd.add(2);

Iterator<Integer> it =dd.iterator();

while(it.hasNext()){

Integer i=it.next();

System.out.println(i);

}

}

//ArrayList与LinkerList不同之处在于,ArrayList是顺序表,类似于数组,但长度可变适合多查找少增删的情况。LinkerList是链表适合需要频繁更新操作的情况。

//HashMap

示例:

public static void main (String[]args){

HashMap<String,String>hs=new  HashMap<>();

//使用put方法插入键值对

hs.put("No.1","沸羊羊");

hs.put("No.2","黑小虎");

//插入已存在的键会进行覆盖

hs.put("No.2","双面龟");

//根据Key取出值

System.out.println(hs.get("No.1"));

System.out.println(hs.get("No.2"));

//TreeMap

// Creating an empty TreeMap

TreeMap tree_map = new TreeMap();

// Mapping string values to int keys

tree_map.put(10, "Good");

tree_map.put(15, "4");

tree_map.put(20, "Geeks");

tree_map.put(22, "Welcomes");

tree_map.put(30, "You");

System.out.println("Initial Mappings are: " + tree_map;

String returned_value = (String)tree_map.put(20, "All");

System.out.println("Returned value is: " + returned_value);

System.out.println("New map is: " + tree_map);

}

}

//Maptable

public class testHashtable {
    public static void main(String []args){
        HashMap<String,Integer> hm=new HashMap<>();
     

hm.put(new Integer(1), "one");

hm.put(new Integer(2), "two");

hm.put(new Integer(3), "three");

for(int i=1;i<=3;i++) {

String s = n.get(i);

if(s!=null) {

System.out.println(i+"="+s);
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值