集合

集合

单列集合:
Collection接口:list接口可重复,Set接口不可重复
List集合:
实现类:ArrayList,LinkedList
Set集合:
实现类:HashSet,TreeSet
双列集合:
Map接口:
实现类:HashMap

ctrl+B打开源码,视图->工具窗口->structure打开方法列表

Collection集合的常用方法:

boolean add​(E e) 添加元素,add方法的返回值为true
void clear​() 清空集合
boolean remove​(Object o) 删除指定元素
boolean contains​(Object o) 判断是否包含指定元素
boolean isEmpty​() 判断集合是否为空
int size​() 集合长度
//遍历常用方法
Iterator<E>iterator();返回集合中元素的迭代器,通过集合的iterator()方法获得
iterator中常用方法:
E next();返回迭代去中的下一个元素
boolean hasNext():如果迭代器中有更多元素,则返回true
//举例
Collection<String> c=new ArrayList<String>();
c.add("zhangsna");
c.add("lisi");
Iterator<String> it=c.iterator();
while(it.hasNext()){
     System.out.println(it.next());
}

List集合

1.有序,存储和取出的元素顺序一致
2.可重复,存储的元素可以重复

//特有方法
void add​(E e) 添加元素到末尾  
void add​(int index, E element)  指定位置插入元素
void remove​(int position) 删除指定位置的元素 
void remove​(String item) 删除第一次出现的item,传入的Item就是待删除项
E set​(int index, E element) ,返回被修改的元素
int size​() 
E get​(int index),注意索引是从0开始的,返回指定索引的元素
//ListIterator,列表迭代器,List集合特有的迭代器
void add​(E e) 将指定的元素插入列表(可选操作)。 
E next​()   
boolean hasNext​() 
E previous​() 
boolean hasPrevious​()  
void remove​() 从列表中删除 next()previous() (可选操作)返回的最后一个元素。  
void set​(E e) 用指定的元素(可选操作)替换 next()previous()返回的最后一个元素。  

增强for

格式:
for(元素数据类型 变量名:数组或者collection集合){

}
简化数组和Collection集合的遍历,内部是一个Iterator迭代器

//数组增强for
int []arr={1,2,4,5,6};
for(int i:arr){
    System.out.println(i);
}
//集合增强for
 List<String> c=new ArrayList<String>();
 c.add("zhangsna");
c.add("lisi");
c.add("zaima");
for(String str:c){
	System.out.println(str);
}

ArrayList底层是数组,查询快,增删慢
ListedList底层是链表,查询慢增删快

//LinkedList
void addFirst​(E e) //在该列表开头插入指定的元素。  
void addLast​(E e) //将指定的元素追加到此列表的末尾。 
E getFirst​() //返回此列表中的第一个元素。  
E getLast​() //返回此列表中的最后一个元素。 
E removeFirst​() //从此列表中删除并返回第一个元素。 
E removeLast​() //从此列表中删除并返回最后一个元素。  

Set集合

底层是哈希表,不包含重复元素,没有带索引的方法,所以不能使用普通的for循环遍历
HashSet:对集合的迭代顺序不作保证
int hashCode​() 返回对象的哈希码值
同一个对象多次调用hashCode()方法返回的哈希值相同。
hashCode()方法可以被重写,实现不同对象相同的哈希值

HashSet集合,实现Set集合

底层是哈希表
存储和取出顺序不一致
不包含重复元素

HashSet<String>hs=new HashSet<String>();
hs.add("zhangsna");
hs.add("lisi");
for(String str:hs){
     System.out.println(str);
}

LinkedHashSet集合实现了Set集合

哈希表和链表实现Set接口,具有可预测的迭代次序
链表保证元素有序,元素的存储和取出顺序一致
没有重复元素

TreeSet间接实现Set接口

元素有序,不是指存储和取出的顺序,而是指可以按照一定的规则排序,具体排序方式取决于构造方法
TreeSet()根据其元素的自然排序进行排序
TreeSet(Comparator comparator):根据指定的比较器进行排序
没有带索引的方法,不能使用普通for循环遍历
不包含重复元素

Map集合

Interface Map<k,v>,不能包含重复的键

V put​(K key, V value) 
V remove​(Object key) ,返回的是待删除的键所对应的值
void clear​() 
boolean containsKey​(Object key) 
boolean containsValue​(Object value) 
boolean isEmpty​() 
int size​() 
//获取功能
V get​(Object key) 
Set<K> keySet​() 返回键的集合
Collection<V> values​() 返回值的集合
Set<Map.Entry<K,V>> entrySet​() 获取键值对对象的集合
//举例
Map<String ,String>m=new HashMap<String,String>();
m.put("1","张三");
m.put("2","李四");
m.put("3","王五");
Set<String>ks=m.keySet();
Iterator<String>it=ks.iterator();
while(it.hasNext()){
    System.out.println(it.next());
}
//值的集合
Collection<String>c=m.values();
Iterator<String>it=c.iterator();
while(it.hasNext()){
   System.out.println(it.next());
}
//map集合的遍历
Map<String ,String>m=new HashMap<String,String>();
m.put("1","张三");
m.put("2","李四");
m.put("3","王五");
Set<String>key=m.keySet();
for(String str:key){
   System.out.println(str+"---"+m.get(str));
}
//迭代器遍历
Iterator<String>it=key.iterator();
while(it.hasNext()){
    String str=it.next();
    System.out.println(str+"---"+m.get(str));
}
//entrySet遍历
Set<Map.Entry<String, String>> entries = m.entrySet();
for(Map.Entry<String, String> me:entries){
     String key = me.getKey();
     String value = me.getValue();
	 System.out.println(key+"------"+value);
}
Map.Entry<k,v>
K getKey​()   
V getValue​() 

文件流

FIle是文件和目录的抽象表示,其封装的并不是真正存在的文件,仅仅是一个路径名而已,可以是存在的也可以是不存在的。将来要通过具体的操作把这个路径的内容转换为具体存在的。

//File​(File parent, String child) 
File f=new File("F://java");
File fp=new File(f,"c.txt");
//File​(String pathname) 
File f=new File("F:\\java\\a.txt");
//File​(String parent, String child)
 File f=new File("F:\\java","b.txt");

/*boolean createNewFile​() ,如果文件存在创建一个文件返回true,否则返回false,创建文件按的时候如果上级目录不存在,将会报错。*/
File f=new File("F:\\java\\a.txt");
System.out.println(f.createNewFile());
//boolean mkdir​(),如果目录不存在创建一个目录,返回true,否则返回false
File f=new File("F:\\\\java\\java练习");
System.out.println(f.mkdir());
//boolean mkdirs​(),创建多级目录
File f=new File("F:\\\\java\\java练习1\\我爱学习");
System.out.println(f.mkdirs());

//File类的判断和获取功能
boolean isDirectory​() 测试此抽象路径名表示的文件是否为目录。  
boolean isFile​() 测试此抽象路径名表示的文件是否为普通文件。 
boolean exists​() 测试此抽象路径名表示的文件或目录是否存在 
String getAbsolutePath​() 返回此抽象路径名的绝对路径名字符串。  
String getPath​() 将此抽象路径名转换为路径名字符串。  
String getName​() 返回由此抽象路径名表示的文件或目录的名称。  
String[] list​() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。  
File[] listFiles​() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。 
//文件删除功能
File f=new File("day04_jdbc/a.txt");
System.out.println(f.delete());
//当要删除一个目录,但该目录下还有文件,则不能使用delete()直接删除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值