『壹』 java:如何封装集合
对于一般的成员变量,对其提供简单的getter/setter封装即可。而对于一个集合类,不能够这样做。 对于一个简单的搏氏成员变量,可孝毕以这样:
class Athlete {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// ......
而如果是一个Set/List/Map或数组,应该:
[1]初始化这个集合类;
[2]提供对单个元素的add/remove;
[3]提供加入另一个集合的方法。如果是基于此初巧银芹始化,则先保证当前集合无元素;
[4]对于getter方法,应该返回该集合的只读试图;
[5]提供当前集合size。
public class Game {
private Set<Athlete> players = new HashSet<Athlete>();// 1
public void addPlayer(Athlete one) {// 2
players.add(one);
}
public void removePlayer(Athlete one) {// 2
players.remove(one);
}
public void addPlayers(Set<Athlete> set) {// 3
Iterator<Athlete> iter = set.iterator();
while (iter.hasNext())
addPlayer(iter.next());
}
public void initializaPlayers(Set<Athlete> set) {// 3
if (getAttendNumbers() > 0)
players.clear();
players.addAll(set);
}
public Set<Athlete> getAllPlayers() {// 4
return Collections.unmodifiableSet(players);
}
public int getAttendNumbers() {// 5
return players.size();
}
『贰』 什么是Java的封装类
封装类就是人家已经写好实现,你只要负责调用就可以
比如排序就可以直接调用Collections.sort(Collection
coll)方法,没必要再自己写
『叁』 java集合是什么
Java集合是什么:
Java 中的集合类库可以帮助我们在程序设计中实现传统的数据结构。
Java的集合类是一个用来存放对象的容器,有以下特点:
1、Java集合只能存放对象。加入添加了一个基本数据类型,会被自动装箱后存入集合。
2、集合存放的是多个对象的引用,对象本身是在堆内存中的。
3、集合可以存放不同类型,不限数量的数据类型。
集合分三种:1、Set 2 、List 3、Map,下面进行具体介绍。
主要内容:
1)手写ArrayList
2)手写单链表
3)手写LinkedList
4)手写HashMap
5)手写HashSet
6)最新并发集合类
学习目标:
1. 掌握手写ArrayList
2. 掌握手写单链表
3. 掌握手写LinkedList
4. 掌握手写HashMap
5. 掌握手写HashSet
6. 理解最新并发集合类底层原理
视频课程小结:
01_集合提升训练_手写ArrayList_get_size_isEmpty_自定义异常
02_集合提升训练_手写ArrayList_构造方法_add
03_集合提升训练_手写ArrayList_toString_iterator
04_集合提升循环_手写单链表_get
05_集合提升训练_手写单链表_add_remove_toString
06_集合提升训练_手写LinkedList
07_集合提升训练_手写LinkedList_添加内存分配图
08_集合提升训练_HashMap的原理和代码准备
09_集合提升训练_手写HashMap的put
10_集合提升训练_手写HashMap的get_toString
11_集合提升训练_手写HashSet
12_集合提升训练_新一代并发集合类
『肆』 java中的封装类
java编程思想中其实就提到了,还是做了一下总结:
1.基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的。
2.从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建)。比如
Integer i=new Integer(10); 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上。 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等。还有你如果想传递一个int对象的引用,而不是值,那只能用封装类。
在堆栈上分配内存的调用效率和在堆上分配内存的效率差太多了。虽然在堆栈上分配内存效率高,不过在堆栈上分配内存有内存泄露的问题。(这是一个平庸程序员基本解决不了的问题...)java用了一种很天才的方法提高了在堆上分配内存的效率,尽管如此,java还是慢。他不太可能达到向c++那么快,尽管他一直在承诺总有一天虚拟机会和机器码速度一样快。
JDK5.0开始可以自动封包了 ,也就是基本数据可以自动封装成封装类,基本数据类型的好处就是速度快(不涉及到对象的构造和回收),封装类的目的主要是更好的处理数据之间的转换,方法很多,用起来也方便。
当然,封装类型的传递是引用传递,比如
Integer a = new Integer(1);
表示一个Integer类型的引用a引用了一块内存,这块内存中的数据是1; 而a中所存的则是这块内存的引用(地址),把a传给别的方法或对象时,则是把a的引用传递过去了。
类型之间的转换:
String b = "123456";
int c = Integer.parseInt(b);
表示把字符串123456转成整型数字,其中parseInt是静态方法,可以直接使用
还有一点,在某些场合,需要用到封装类,比如一个集合List,它只能往里面添加对象,也就是Object,那么直接存数字肯定是不行 的,则需要将数字封装成封装类型对象再存到该List中,如
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
list.add(new Integer(4));
JDK5.0以后可以自动封包,所以可以简写成
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
『伍』 Java中类的封装是如何实现的
封装是穗谈将对象的信息隐藏在对象内部,禁止外部程序直接访问对象内部的属性和方法。x0dx0ajava封装类通过三个步骤实现:x0dx0ax0dx0a(1)修猜渗碰改属性的可见性,限制访问。x0dx0a(喊游2)设置属性的读取方法。x0dx0a(3)在读取属性的方法中,添加对属性读取的限制。
『陆』 Java操作文本封装类
import java io BufferedReader;
import java io BufferedWriter;
import java io File;
import java io FileReader;
import java io FileWriter;
import java io IOException;
import java util ArrayList;
import java util List;
或液/**
* 用于对记事本的操作
*
* @author 沙琪玛
*
*/
public class NoteOperate {
// txt文件路径
private String filePath;
/**
* 构虚辩造函数
*
* @param filePath
* 文本文件全路径
*/
public NoteOperate(String filePath) {
this filePath = filePath;
}
/**
* 构造函数
*
* @param file
* 需要读取的文本文件
*/
public NoteOperate(File file) {
this filePath = file getPath();
}
/**
* 判断文本文件是否存在
*
* @return 存在返回true 否则返回false
*/
public boolean exists() {
File file = new File(this filePath);
return file exists();
}
/**
* 得到这个txt所有的列的数据 空行将自动跳过 并自动删除文字前后的空格
*
* @return List<String>
* @throws IOException
*/
public List<String> fileLinesContent() throws IOException {
List<String> strs = new ArrayList<String>();
File file = new File(this filePath);
FileReader fr = new FileReader(file);// 建立FileReader对象 并实例化为fr
BufferedReader br = new BufferedReader(fr);// 建立BufferedReader对象 并实例化为br
String Line = br readLine();// 从文件读取一行字符串
// 判断读取到的字符串是否不为空
while (Line != null) {
if (! equals(Line))
strs add(Line trim());
Line = br readLine();// 从文件中继续读取一行数据
}
br close();// 关闭BufferedReader对象
fr close();// 关闭文件
return strs;
}
/**
* 创建一个空的记事本文档 如果这个记事本文档存在就不再创建 函数还未写实现部分<br/> 如果文本已经存在则不再创建
*
* @throws IOException
*/
public void createEmptyNote() throws IOException {
File file = new File(this filePath);
if (!file exists())
file createNewFile();
}
/**
* 将内容写入这个文本 注意以差团缺前的内容将会被删除
*
* @param str
* 将要写入的内容
* @throws IOException
*/
public void writeString(String str) throws IOException {
File file = new File(this filePath);
BufferedWriter output = new BufferedWriter(new FileWriter(file));
output write(str);
output close();// 关闭BufferedReader对象
}
/**
* 在文本的指定行插入文字 如果该行已经存在 该行内容将会被删除 如果行号不存在 将会 *** 入到最后一行
*
* @param i
* 行号 行号为 时 将插入到最后一行
* @param str
* 将要插入的内容
* @throws IOException
*/
public void insertWords(int i String str) throws IOException {
List<String> strs = fileLinesContent();
// 进行插入操作
if (i == || strs size() < i) // 插入到最后一行
{
strs add(str);
} else { // 插入到文本中
strs set(i str);
}
// 重新写入到文本
StringBuffer *** = new StringBuffer();
for (String temp : strs) {
*** append(temp replace( )+ );
}
writeString( *** toString());
}
lishixin/Article/program/Java/hx/201311/26945
『柒』 java 基本数据类型和其封装类你知多少
8种基本类型按照类型划分:byte,short,int,long,float,double,boolean,char。
8种基本类型的封装类:Byte,Short,Integer,Long,Float,Double,Boolean,Character.
为什么需回要封装类?答
因为泛型类包括预定义的集合,使用的参数都是对象类型,无法直接使用基本数据类型,所以Java又提供了这些基本类型的封装类
基本类型和对应的封装类由于本质的不同。具有一些区别:
1.基本类型只能按值传递,而封装类按引用传递。
2.基本类型会在栈中创建,而对于对象类型,对象在堆中创建,对象的引用在栈中创建,基本类型由于在栈中,效率会比较高,但是可能存在内存泄漏的问题。
『捌』 JAVA类的封装是什么意思
封装就是把抽象出来的JAVA类的变量和方法集成为一个集体,就像集成电路元件成为一个独专立的芯片属一样,它只留出对外的接口,使用者可以直接使用它,但看不到其内部是怎样实现的,JAVA类的封装就是对外而言能直接使用它来定义的对象去调用相关变量和方法
『玖』 java怎么把数据封装list
可以先创建好List对象:List<泛型>对象名称=new ArrayList<泛型>();
然后调用list集合的add方法实现数据的填充:对象名称.add(泛型的参数)
『拾』 Java中类的封装是如何实现的
java类中,是分四种级别的坦袭:穗姿public,private,保护,和默认级别。其中最常用的是public和private级别。java类封装,就是通过级别来控制的。private级别时让族兄,只可以类内部访问。public级别可让其他人使用。所以封住java类时,只要把你想封装的类资源写成private级别,再在类内部给它提供一个可被他人调用的public方法,这样,就实现了封装。大概就是这样吧